所以我在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。
答案 0 :(得分: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}
答案 1 :(得分:0)
您需要在路由器功能中添加参数,例如:
$url_pattern = route('items.item', ['id' => $id, 'slug' => $slug]);