[英]How can I get a route url pattern by route name in laravel?
所以我在web.php中定义了一条路由,就像这样。
Route::any('/items/{id}/{slug}', 'Items\ItemController@item')->name('items.item');
我正在尝试创建一个函数,在其中可以通过调用路由的名称来获取URL的字符串模式'/ items / {id} / {slug}'...
我以为这会工作..但是没有(它告诉我我缺少参数id和slug)。
// Should assign the string 'items/{id}/{slug}' to the variable.
$url_pattern = route('items.item');
我正在使用Laravel 5.3。
您可以按以下方式访问Route的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]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.