За последние 24 часа нас посетили 17890 программистов и 1611 роботов. Сейчас ищут 1405 программистов ...

Вывод заголовков страниц в верхней части

Тема в разделе "Laravel", создана пользователем Konstant1n, 11 сен 2019.

  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    всем привет.
    начал изучение Laravel, кстати устроился junior программистом PHP, буду писать проекты на Laravel.
    так вот есть у меня таблица pages и я хочу вывести список pages в верхней части сайта. она подключена к template с помощью include('layouts/pages'). как мне в pages.blade.php вывести все страницы. конечно у меня есть ControllerPage и ModelPage. создать объект ModelPage в pages.blade.php?

    и еще, это же не правильно каждый раз обращаться к БД и запрашивать список страниц. этот список будет меняться не часто. можно, как-нибудь, сгенерировать файл, который будет содержать список страниц и этот файл будет генерироваться только в случае изменения таблицы pages. так скажем поддержка версий файла. это как создание файлов css и js через laravel-mix по-моему. там есть такая штука как webpack.mix.js и в нем можно прописать поддержку версий: mix.js('public/css/my.css').sass('public/js/my.js').VERSION().

    или все это кэшировать? хотя кэширование пока не очень понимаю.
     
  2. vvas

    vvas Новичок

    С нами с:
    9 апр 2018
    Сообщения:
    50
    Симпатии:
    10
    Ты наверное хотел сказать @include('layout.pages') :) В путях blade разделитель точка, а не слеш.

    Кешировать конечно можно, только ты этим сейчас не заморачивайся. Говорят, преждевременная оптимизация это плохо.
    Если тебе надо получить список страниц в layout.pages, ты можешь сделать одно из трёх:

    - Передать этот список из контроллера при вызове основного шаблона, а затем прокинуть его в под-шаблон как параметр
    @include('layout.pages', ['pages' => $pages])

    - В сервис провайдере зарегистрировать вызов view composer для данного шаблона. Параметр не придется передавать в контроллере, он появится "магически".

    - Сделать инъекцию сервиса в под-шаблоне и получать данные из него.
     
  3. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    это надо будет во всех методах контроллеров, которые возвращают view(...)?
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Что это? Тебе три различных метода предложили. ты хоть доку-то прочитал? Задаёшь вопросы, которые там разжёваны досконально.
     
  5. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград