Laravel 4 - 隐藏URL中的变量。

时间:2014-05-06 10:40:20

标签: php html laravel laravel-4

我有以下路线:

 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吗?

1 个答案:

答案 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']);