Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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中通过路由名称获取路由url模式?_Php_Laravel_Laravel 5_Laravel 5.3 - Fatal编程技术网

Php 如何在laravel中通过路由名称获取路由url模式?

Php 如何在laravel中通过路由名称获取路由url模式?,php,laravel,laravel-5,laravel-5.3,Php,Laravel,Laravel 5,Laravel 5.3,所以我在我的web.php中定义了一个路由,就像这样 Route::any('/items/{id}/{slug}', 'Items\ItemController@item')->name('items.item'); 我正在尝试创建一个函数,在该函数中,我可以通过调用URL的名称从路由中获取URL“/items/{id}/{slug}”的字符串模式 我想这会有用的。。但它没有(它告诉我我缺少参数id和slug) 我使用的是Laravel 5.3。您可以访问的uri如下: $url_pa

所以我在我的web.php中定义了一个路由,就像这样

Route::any('/items/{id}/{slug}', 'Items\ItemController@item')->name('items.item');
我正在尝试创建一个函数,在该函数中,我可以通过调用URL的名称从路由中获取URL“/items/{id}/{slug}”的字符串模式

我想这会有用的。。但它没有(它告诉我我缺少参数id和slug)

我使用的是Laravel 5.3。

您可以访问的uri如下:

$url_pattern = app('router')->getRoutes()->getByName('items.item')->uri;
var_dump($url_pattern);
// will return:
// "items/{id}/{slug}"

始终可以创建人造管线。当您调用
route()
时,必须假设您知道它期望的参数

如果希望将其作为字符串(例如在JS中使用),只需将参数的名称作为参数传递即可。例如:

$url_pattern = route('items.item', ['id' => '{id}', 'slug' => '{slug}']);
// will generate:
// items/{id}/{slug}
$url_pattern = route('items.item', ['id' => $id, 'slug' => $slug]);

您需要在路由器功能中添加参数,例如:

$url_pattern = route('items.item', ['id' => '{id}', 'slug' => '{slug}']);
// will generate:
// items/{id}/{slug}
$url_pattern = route('items.item', ['id' => $id, 'slug' => $slug]);

奇怪,这应该有用。。。。但我仍然得到缺少的必需参数错误。