我有以下路线:
Route::resource('projects.deliveries.tasks', 'TaskController');
当然,如果我想创建一个任务,我的URL看起来像这样:
http:://test.dev/projects/1/deliveries/3/tasks/create
项目编号1和交货编号3。
http://i.imgur.com/RlHHY31.jpg
但我不希望该号码显示在URL中,因为任务应该是可创建的,无需身份验证或登录。
有没有办法隐藏这些数字,以便我得到一个干净的URL:
http:://test.dev/projects/delivereis/tasks/create
Laravel从我的逻辑中了解到,创建任务是Project 1和devivery 3吗?
答案 0 :(得分:0)
如果您想这样做,您应该手动指定路线。如果您绝对要按预期使用资源(使用详细路由),则使用Route::resource()
非常有用,但它不能为您提供很大的灵活性。事实上,对于大多数项目,实际上建议您手动定义所有路径,以便为您提供最大程度的控制(在routes.php
文件中也是很好的自我文档)。
Route::get('projects/deliveries/tasks/create', ['as' => 'projects.deliveries.tasks.create', 'uses' => 'TasksController@create']);
Route::post('projects/deliveries/tasks', ['as' => 'projects.deliveries.tasks.store', 'uses' => 'TasksController@store']);