При визуализации представления с контроллера стандартная практика заключается в том, чтобы поместить ваш код в контроллер, а затем передать необходимые переменные виду, чтобы их можно было использовать при рендеринге.Где разместить код, требуемый макетом в Ларавеле?
Этот вид обычно расширяет вид макета.
Где я могу поместить свой код, который необходим в макет, и как его вставить?
В качестве примера я посмотрел кнопки входа/регистрации из официального кода Laravel. Чтобы отобразить их правильно, в представлении требуется информация о том, был ли пользователь в настоящий момент зарегистрирован или нет.
В Laravel это выглядит следующим образом:
@if (Auth::guest())
<li><a href="{{ url('/login') }}">Login</a></li>
<li><a href="{{ url('/register') }}">Register</a></li>
@else
...
Таким образом, точка зрения на самом деле получить данные о своих собственных. Даже если код содержится в одной функции, это противоречит моему пониманию разделения кода. По моему мнению, необходимые данные должны быть переданы в представление и не полагаться на какие-либо внешние методы. Что делать, если имя метода меняется и т. Д.
Есть ли лучший способ сделать это в laravel?
Например, в Zend/Magento существует понятие «блок». Где есть класс с кодом, который соответствует представлению и может использоваться для предоставления данных.
Имеет ли смысл вкладывать это в среднюю посуду или поставщика услуг?
Чтобы быть честным, я думаю, что это абсолютно нормально, но если вы хотите сместить его внутри переменной, вам нужно поместить его в композитор представления, в котором вы проверяете, является ли текущий пользователь гостем, а затем разделяют которые рассматривают композитор со всеми представлениями, к которым применяется логика. Вот документация для L5.2: https://laravel.com/docs/5.2/views#view-composers (Edit: обратите внимание на то, что, поскольку совместно используемые композиторы представления немного изменились, поэтому убедитесь, что вы смотрите документацию для версии, которую вы используете.) –
Это именно то, что я искал @JoelHinz. Если вы переместите taht на ответ, то отметьте его как принятый. –
Рад, что это помогло! Спасибо, что позволили мне добавить его в качестве ответа, я сделал это сейчас. –