Использование Именованного URL в шаблоне клинка

В Django я могу это сделать:

<a href="{% url 'account_login' %}">Account Link</a>

который дал бы мне domain/account/login, где у меня есть URL-адрес, указанный в моем urls.py

url(r'^account/login/$', views.Login.as_view(), name='account_login'),

Я хочу сделать что-то подобное в Laravel 5.2

В настоящее время у меня есть что-то вроде этого:

Route::get('/survey/new', ['as' => 'new.survey', 'uses' => 'SurveyController@new_survey']);

Как использовать в моем шаблоне, а также передавать параметры?

Я наткнулся на это: https://laravel.com/docs/5.1/helpers, но это был всего лишь фрагмент белой страницы без соответствующего содержания того, как на самом деле ее использовать.

1 ответ

Вы можете использовать помощник route(), зарегистрированный здесь.

<a href="{{ route('new.survey') }}">My Link</a>

Если вы включили laravelcollective/html, вы можете использовать link_to_route(). Это изначально было частью ядра, но было удалено в Laravel 5. Здесь объясняется

{!! link_to_route('new.survey', 'My Link') !!}

Коллектив Laravel зарегистрировал вышеупомянутого помощника здесь. Прототип функции выглядит следующим образом

link_to_route($routeName, $title = null, $parameters = [], $attributes = []);

Если, например, вы хотели использовать параметры, он принимает массив пар значений ключа, которые соответствуют именованным сегментам в вашем URI маршрута.

Например, если у вас был маршрут

Route::get('surveys/{id}', 'SurveyController@details')->name('detail.survey');

Вы можете создать ссылку на этот маршрут, используя следующие параметры.

['id' => $id]

Полный пример, эхо-разметка, содержащая привязку к указанному маршруту.

{!! link_to_route('new.survey', 'My Link', ['id' => $id]) !!}

licensed under cc by-sa 3.0 with attribution.