【问题标题】:custom name for root in route in laravel 5.5laravel 5.5中路由中root的自定义名称
【发布时间】:2018-03-21 04:20:45
【问题描述】:

我使用这些路线

Route::namespace('Panel\Admin')->prefix('admin')->group(function (){
  $this->get('/', 'HomeController@index');

  $this->namespace('Users')->prefix('users')->group(function (){

    $this->get('/' , 'UserController@index')->name('users');
    $this->delete('/{user}/destroy' , 'UserController@destroy')->name('users.destroy');
    $this->get('/create' , 'UserController@create')->name('users.create');
    $this->post('/store' , 'UserController@store')->name('users.store');
    $this->get('/{user}/edit' , 'UserController@edit')->name('users.edit');
    $this->patch('/{user}/update' , 'UserController@update')->name('users.update');

它有效。

例如php artisan route:list 我有这些:

admin/users                               | users 
admin/users/create                        | users.create 
admin/users/store                         | users.store 
admin/users/{user}/destroy                | users.destroy

但我想把代码写短:

Route::namespace('Panel\Admin')->prefix('admin')->group(function (){
  $this->get('/', 'HomeController@index');

  $this->namespace('Users')->prefix('users')->group(function (){

    $this->resource('/' , 'UserController');
    $this->resource('/test' , 'UserController');

php artisan route:list 我有这些:

admin/users                               | index 
admin/users                               | store 
admin/users/create                        | create 
admin/users/{}                            | show 
admin/users/{}                            | update 
admin/users/{}                            | destroy  
admin/users/{}/edit                       | edit 

这是错误的。但对于测试是正确的。例如:

admin/users/test                          | test.store 
admin/users/test/{test}/edit              | test.edit 

我怎么了?

【问题讨论】:

    标签: laravel laravel-5 laravel-routing laravel-5.5


    【解决方案1】:
    $this->resource('user' , 'UserController');
    

    这将为用户创建所有标准路线。

    您不应该包含前缀user,因为它会创建它。

    【讨论】:

      【解决方案2】:

      resource方法的第一个参数应该是资源的名称, 所以你应该删除 users 前缀并添加 users 作为资源的名称

      $this->resource('users' , 'UserController');
      

      您可以在documentation 上阅读更多相关信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-10
        • 2018-07-05
        • 2018-03-19
        • 2018-04-30
        • 2016-08-18
        • 1970-01-01
        • 2022-11-26
        • 2014-01-26
        相关资源
        最近更新 更多