{{Laracast Laravel 5 Fundamentals, 25, When You Want a View Partial to Always Receive Data, 11.02.2015, 27.07.2016, https://laracasts.com/series/laravel-5-fundamentals/episodes/25}} %%(hvlraw) %% (0:00) Вот один момент, который вы обнаружите, когда начнёте самостоятельно строить свои приложения. Вы окажетесь в таких ситуациях, где кажется, что вы постоянно получаете один и тот же набор данных и передаёте его в одно и то же новое представление. Например, допустим, вам нужно подготовить некоторую информацию из базы данных, чтобы заполнить вашу панель навигации. ОК, это нормально. Вы делаете это для вашей страницы %%(t)articles%%, но потом понимаете, что для любой другой страницы не нужно делать это снова, поскольку все эти представления содержат панель навигации, так что мне нужно получать эти данные каждый раз. (0:30) И очень быстро ваши контроллеры будут ужасно выглядеть, потому что вы беспричинно дублируете эти вызовы снова и снова, лишь потому что вы не знаете, что ещё можно тут сделать. Поверьте, есть более простой способ, так что давайте используем этот пример навигационной панели. Я нахожусь на сайте %%(t)getbootstrap.com%%, где есть куча примеров, и мы используем Bootstrap, так что мы довольно быстро с этим разберёмся. (1:00) Давайте скопируем это, а затем я вернусь к своему редактору, к нашей главной странице, и затем вставлю этот код прямо здесь. Или опять же, если вы хотите, чтобы всё было действительно чисто и решите извлечь этот код в partial, то я не вижу с этим никаких проблем. Хорошо, давайте оставим это как есть и переключимся обратно в Chrome, обновим, и готово, но, похоже, нам нужно немного увеличить отступ. Перейдём к главной странице стилей приложения (%%(t)app.scss%%) и давайте увеличим его до 60 пикселей: %%(css) body { padding-top: 60px; } %% (1:30) ОК, я запущу Gulp чтобы скомпилировать всё, и теперь, если я переключусь обратно и обновлю, вот наша панель навигации, и мы создали её очень легко с помощью Twitter Bootstrap. Круто. Так что давайте возьмём 30 секунд и заполним некоторые из этих ссылок. Мы установим имя сайта как %%(t)Blog%%, и сделаем раздел для наших статей %%(t)%%, и пожалуй пока этого достаточно. Обновим и готово. (2:00) Теперь мы можем сделать ссылку на главную страницу, вот так, где у нас даже нет никаких стилей, но также у нас есть ссылки на странице со статьями и все остальное, что может понадобиться. Хорошо, так что дальше, на самом деле в основном ради примера, давайте представим, что нашей панели навигации нужно что-то из нашей базы данных, и на самом деле в этом маленьком простом приложении у нас там почти ничего нет. Так что, может быть, в верхнем правом углу мы хотим просто отобразить самую свежую опубликованную статью. (2:30) Тогда независимо от того, где вы находитесь на сайте, вы можете видеть самую последнюю статью в самом верху. Это звучит вполне разумно. Так почему бы нам не сделать чтобы эта страница так работала? Тогда мы увидим проблему: нам придётся делать это каждый раз, и мы будем их решать с помощью того, что мы называем, компоновщиком вида. Так что я переключусь обратно, и прямо здесь находится наш раздел основной навигации. Давайте создадим вторую навигацию, и она будет в правой стороне экрана и мы можем использовать Bootstrap-класс %%(t)navbar-right%%, чтобы сдвинуть её вправо: %%(h)