Laravel多个路由别名

4
我正在尝试创建一个带有别名数组的路由,这样当我在url中调用whois或who_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' (这是正确的)

但是,当我尝试在blade模板中调用它时...

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

参考链接指向my_laravel.com//%7Bwhois%7D 我该如何在blade.php中调用route('whois')并使其像在URL上输入时一样正常工作?
我想在我的blade中使用route函数,这样我就可以保留一个模式。

我需要帮助:https://dev59.com/22Eh5IYBdhLWcg3wKQjY? - Dhiraj
1个回答

5
在使用route函数进行路由生成时,Laravel希望您设置路由参数的值。您把whois参数留空了,因此无法替换捕获的{whois}参数,导致花括号中出现%7B&7D
因此,为了生成路由,您需要定义要用于whois的值;例如:{{ route('whois', ['whois'=>'whois']) }}

2
太棒了!非常感谢您对route函数工作原理的解释!它像魔法一样奏效。谢谢 :) - Michel Ayres

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接