Laravel 路由:资源路由命名 0 个改进

利用 names 属性来修改,格式为 动作 => 名词 ,例如 'index' => 'photos.index',PhotosController 里的方法 index ,对应路由命名 'photos.index'。完整例子如下:

Route::resource('photos', 'PhotosController', ['names' => [
    'index'   => 'photos.index',
    'create'  => 'photos.create',
    'store'   => 'photos.store',
    'show'    => 'photos.show',
    'edit'    => 'photos.edit',
    'update'  => 'photos.update',
    'destroy' => 'photos.destroy'
]]);
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 8

这样也是可以的

Route::resource('permission', 'PermissionsController')->names('admin.permission');
5年前 评论

这样也是可以的

Route::resource('permission', 'PermissionsController')->names('admin.permission');
5年前 评论

这样也是可以的

Route::resource('permission', 'PermissionsController', ['names' => 'admin.permission']);
5年前 评论
张浩浩浩浩

又学了一手花里胡哨。

4年前 评论

那个Route::resources怎么批量定义names???

4年前 评论

怎么想group一样写中间件在资源路由上面呢?

4年前 评论
Route::resource('permission', 'PermissionsController')

这也貌似也可以吧,不用非得name下

3年前 评论
Questa

仅供参考:


Route::resource('index', IndexController::class,[
    'names' => [
        'index' => 'home.index',
        'create' => 'home.create',
        'store' => 'home.store',
        'edit' => 'home.edit',
        'update' => 'home.update',
        'destroy' => 'home.destroy',
    ]
    'only' => [
        'index','create','store','edit','update','destroy'
    ],
])->names('index')->middleware('logged.in');
2年前 评论
Questa

或者也可以这样:


$controllers = ['article' => ArticleController::class];
$controller = strtolower(Request::segment(2));
if (isset($controllers[$controller])) {
    Route::resource($controller, $controllers[$controller],[
        'only' => ['index','create','store','edit','update','destroy'],
    ])->names('admin.'.$controller);
}
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!