2015-03-18 3 views
2

Я пытаюсь создать маршрут с множеством псевдонимов, поэтому, когда я называю whois или who_is в URL он идет к тому же маршруту.Laravel множественного маршрут псевдонимы

Тогда мне не нужно постоянно повторять код, изменяя только псевдоним.

Я пробовал код ниже.

Переменные в маршрутах:

$path = 'App\Modules\Content\Controllers\[email protected]'; 
$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']); 

Typing в URL my_laravel.com/whois или my_laravel.com/who_is или my_laravel.com/quemsomos отправит меня в $path.'getWhois'(что правильно).

Но когда я пытаюсь вызвать его в HTML на лезвии ...

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

Ссылка ссылка идет на my_laravel.com//%7Bwhois%7D

Как я мог бы назвать route('whois') на моем blade.php и заставить его работать например, когда я печатаю его по URL-адресу?

Я хотел бы использовать функцию route в своем клипе, чтобы сохранить шаблон.

+0

хотел бы помочь http://stackoverflow.com/questions/22751866/laravel-4-blade-templating-how-to-properly-link-to-route? – Dhiraj

ответ

4

Во время генерации маршрута с использованием функции route, Laravel ожидает, что вы установите значение параметра маршрута. Вы оставляете параметр whois пустым, поэтому параметр, фиксирующий {whois}, не будет заменен, и в результате получится %7B и &7D.

Итак, чтобы создать маршрут, вам нужно будет определить, какое значение вы бы хотели использовать для whois; {{ route('whois', ['whois'=>'whois']) }}, например.

+1

Удивительно! Большое спасибо за объяснение того, как работает функция 'route'! Он работал как чары. Благодаря :) –

Смежные вопросы