Laravel Route Resource 方法


新增的 resource 方法將遵從 RESTful 架構為用戶資源生成路由。該方法接收兩個參數,第一個參數為資源名稱,第二個參數為控制器名稱。

Route::resource('users', 'UsersController');

上面代碼將等同於:

Route::get('/users', 'UsersController@index')->name('users.index');

Route::get('/users/{user}', 'UsersController@show')->name('users.show');

Route::get('/users/create', 'UsersController@create')->name('users.create');

Route::post('/users', 'UsersController@store')->name('users.store');

Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit');

Route::patch('/users/{user}', 'UsersController@update')->name('users.update');

Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');

可以看到使用 resource 方法讓我們少寫了很多代碼,且嚴格按照了 RESTful 架構對路由進行設計。


rosource 方法可以取設置nameonly參數只需要衍射的方法

如下面的:

Route::resource('users','UsersController',[
            'only' => ['index','show','update'],
            'as' => 'admin',
            //'name' => 'admin.posts'
        ]);

參數說明:

  • names 是覆蓋原先默認的name 部分
Route::resource('users','UsersController',[
            'names' => [
                'index' => 'users'
            ],
        ]);
  • as 參數,值是路由名稱的前綴,加一個指定的前綴給當前的所有路由名稱前面
Route::resource('users','UsersController',[
            'as' => 'admin',
        ]);
  • only 參數,值是 resources控制器 的 方法名, index,show,update,store,destroy組成的數組,即只能訪問 指定的方法
Route::resource('users','UsersController',[
            'only' => ['index','show'],
        ]);

如上面的,users的路由列表只有 indexshow

上面的三個參數,是我目前直到的參數

可以命令行,在項目的根目錄下運行 php artisan route:list 命令,輸出路由列表
如果當前Laravel項目使用了 dingo api類庫,列出所有的api路由的命令時 php artisan api:route

Reference
  1. Laravel中resource方法
  2. Laravel define a put/patch route as the same route name
  3. Laravel named route for resource controller


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM