Laravel 多个路由别名

Posted

技术标签:

【中文标题】Laravel 多个路由别名【英文标题】:Laravel multiple route aliases 【发布时间】:2015-05-21 06:38:36 【问题描述】:

我正在尝试使用一组别名创建一个路由,所以当我在 url 中调用 whoiswho_is 时,它会转到相同的路由。

那我就不用每次都重复代码了,只改别名就行了。

我尝试了下面的代码。

路径中的变量:

$path = 'App\Modules\Content\Controllers\ContentController@';
$aliases['whois'] = '(quemsomos|who_is|whois)';

路线:

Route::get('whois', array('as' =>'whois', 'uses' => $path.'getWhois'))->where('whois', $aliases['whois']);

这个也可以

Route::get('whois', $path.'getWhois')->where('whois', $aliases['whois']);

输入网址my_laravel.com/whoismy_laravel.com/who_ismy_laravel.com/quemsomos 会将我发送到$path.'getWhois' (正确)

但是当我尝试在刀片上的 html 中调用它时...

<a href=" route('whois') ">Who we are</a>

参考链接转到my_laravel.com//%7Bwhois%7D

如何在我的blade.php 上调用route('whois') 并让它像我在url 上键入时一样工作?

我想在我的刀片中使用route 函数,这样我就可以保留一个模式。

【问题讨论】:

需要帮助***.com/questions/22751866/…? 【参考方案1】:

在使用route 函数生成路由期间,Laravel 期望您设置路由参数的值。您将参数 whois 留空,因此捕获 whois 的参数将不会被替换,并导致 %7B&amp;7D 获得赞誉。

因此,为了生成路由,您需要定义要用于 whois 的值;以 route('whois', ['whois'=&gt;'whois']) 为例。

【讨论】:

太棒了!非常感谢您对 route 函数如何工作的解释!它就像一个魅力。谢谢:)

以上是关于Laravel 多个路由别名的主要内容,如果未能解决你的问题,请参考以下文章

laravel-路由配置的别名作用

在视图上生成 URL 时,Laravel 命名路由方法不会生成主机服务器的 (apache) 别名

laravel中选择多个表列和别名条件

单个域上多个 laravel 应用程序的虚拟主机别名

laravel教程1路由

laravel 不能在 nginx 中作为别名工作