如何通过 laravel 中的路由名称获取路由 url 模式?
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}
你需要在router函数中添加参数,例如:
$url_pattern = route('items.item', ['id' => $id, 'slug' => $slug]);
所以我在 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}
你需要在router函数中添加参数,例如:
$url_pattern = route('items.item', ['id' => $id, 'slug' => $slug]);