Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4-从URL隐藏变量。_Php_Html_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel 4-从URL隐藏变量。

Php Laravel 4-从URL隐藏变量。,php,html,laravel,laravel-4,Php,Html,Laravel,Laravel 4,我有以下路线: Route::resource('projects.deliveries.tasks', 'TaskController'); 当然,如果我想创建任务,我的URL如下所示: http:://test.dev/projects/1/deliveries/3/tasks/create http:://test.dev/projects/delivereis/tasks/create 项目编号1和交付编号3 但是我不希望这个数字出现在URL中,因为任务应该是可以创建的,不需

我有以下路线:

 Route::resource('projects.deliveries.tasks', 'TaskController');
当然,如果我想创建任务,我的URL如下所示:

 http:://test.dev/projects/1/deliveries/3/tasks/create
http:://test.dev/projects/delivereis/tasks/create
项目编号1和交付编号3

但是我不希望这个数字出现在URL中,因为任务应该是可以创建的,不需要身份验证或登录

有没有办法隐藏这些数字,这样我就可以得到一个干净的URL,如下所示:

 http:://test.dev/projects/1/deliveries/3/tasks/create
http:://test.dev/projects/delivereis/tasks/create

根据我的逻辑,Laravel知道要为项目1和设备3创建任务?

如果您想这样做,您可能应该手动指定路由。如果您绝对想按预期使用资源(使用详细的路由),那么使用
Route::resource()
是非常好的,但它并没有为您提供太多的灵活性。事实上,对于大多数项目,实际上建议您手动定义所有路由,以获得最大的控制权(这也是
routes.php
文件中很好的自我文档)


为此,我认为您应该创建一个自定义资源。它怎么知道您指的是项目1和交付3?您是否只有(并且永远都有)一个项目和一次交付?我假设将有一个选择这些项目和交付的表单,在这种情况下,
Input
类将用于检索这些变量。如果用户未登录,为什么URI中的数字会阻止用户编辑这些内容?这更像是一个过滤器问题。在资源中,不应该显式调用create方法,这应该由RESTful状态完成,这意味着当对http://test.dev/projects/1/deliveries/3/tasks/执行RESTful POST时,create方法由资源控制器调用。