Вспомогательные методы

Помимо хранения переменных в 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, если он присутствует.