Вспомогательные методы
Помимо хранения переменных в config.php, Вы также можете определять вспомогательные методы, добавляя ключ с именем функции и возвращая замыкание. Вспомогательные методы вызываются путем ссылки на имя метода из объекта $page в любом шаблоне Blade.
Замыкание метода автоматически получает текущую $page в качестве своего первого параметра. Также можно указать дополнительные параметры и передать их методу при его вызове в Вашем шаблоне.
Например, Вы можете добавить метод, который определяет, принадлежит ли текущая страница определенному разделу, для выделения текущего раздела в шаблоне меню:
config.php
<?php
use Illuminate\Support\Str;
return [
'company' => 'Tighten',
'selected' => function ($page, $section) {
return Str::contains($page->getPath(), $section) ? 'selected' : '';
},
];
Этот метод доступен при вызове $page->selected() с любой страницы.
Теперь мы можем создать частичный шаблон меню, который выделяет текущий пункт меню для каждой страницы:
__menu.blade.php_
<a class="{{ $page->selected('about') }}" href="{{ $page->baseUrl }}/about">О нас</a>
<a class="{{ $page->selected('projects') }}" href="{{ $page->baseUrl }}/projects">Проекты</a>
<a class="{{ $page->selected('posts') }}" href="{{ $page->baseUrl }}/posts">блог</a>
В качестве альтернативы, глобальные вспомогательные методы могут храниться в отдельном файле helpers.php, расположенном на корневом уровне Вашего проекта. Этот файл должен возвращать массив и будет автоматически объединен с config.php, если он присутствует.