繁体   English   中英

如何在laravel中按路线名称获取路线网址格式?

[英]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]);

https://laravel.com/docs/5.5/routing#named-routes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM