ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 资源路由的生成 Laravel 的资源控制器使得构建围绕资源的 RESTful 控制器变得毫无痛苦,例如,你可能想要在应用中创建一个控制器,用于处理关于图片存储的 HTTP 请求,使用 Artisan 命令 make:controller,我们可以快速创建这样的控制器: ~~~ php artisan make:controller PhotoController --resource ~~~ 这个控制器包含了每一个资源操作对应的方法。对应的资源路由写法如下 ~~~ Route::resource('photo', 'PhotoController'); ~~~ 执行完以后生成如下控制器\app\Http\Controllers\PhotoController.php ~~~ <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class PhotoController extends Controller { /** * 显示资源的列表。 * * @return \Illuminate\Http\Response */ public function index() { // } /** * 显示用于创建新资源的表单。 * * @return \Illuminate\Http\Response */ public function create() { // } /** * 将新创建的资源存储在存储中。 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** *显示指定的资源。 * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** *显示用于编辑指定资源的表单。 * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * 更新存储中指定的资源。 * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * 从存储中删除指定的资源。 * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } } ~~~ ## RESTFul 输出 ### 传值 使用助手函数提供的 response 方法 ~~~ if (! function_exists('response')) { /** * Return a new response from the application. * * @param string $content * @param int $status * @param array $headers * @return \Symfony\Component\HttpFoundation\Response|\Illuminate\Contracts\Routing\ResponseFactory */ function response($content = '', $status = 200, array $headers = []) { $factory = app(ResponseFactory::class); if (func_num_args() === 0) { return $factory; } return $factory->make($content, $status, $headers); } } ~~~ 方法的使用 ~~~ $data=[ 'id'=>200, 'name'=>'laravel', ]; return response($data); ~~~ 或则直接返回data值 ~~~ return $data; ~~~ ### 传视图 ~~~ return view('index'); ~~~ ### 返回用户上一级操作 ~~~ return back(); ~~~ ### 传视图携带参数 视图函数携带值 ~~~ $data=[ 'id'=>200, 'name'=>'laravel', ]; return view('index',compact('data')); ~~~ > #### compact解释说明: > 定义: > array compact ( mixed $varname1 [, mixed $... ] ) > 创建一个包含变量及其值的数组。 > 对于其中每一个,compact()在当前符号表中查找具有该名称的变量,并将其添加到输出数组,以使变量名成为键,变量的内容成为该键的值。 简而言之,它与extract()的相反。 > 任何未设置的字符串将被简单地跳过。 > 实例说明: > 当 return $data;输出结果 > {"id":200,"name":"laravel"} > 当 return compact('data');输出结果 > {"data":{"id":200,"name":"laravel"}} > 由此可见:compact函数吧data数据添加一个索引 with携带 ~~~ return view('index')->with('data',$data); ~~~ with携带参数返回用户之前的操作 ~~~ return back()->with('key','value!'); ~~~ 函数所在位置\vendor\laravel\framework\src\Illuminate\Http\RedirectResponse.php | | | | --- | --- | | 函数 | 说明 | |withCookies | 向响应中添加多个Cookie。 | |withInput|Flash an array of input to the session.| |withErrors| 将一个容器的错误发送到会话。|