Helper Methods
In addition to storing variables in config.php
, you can also define helper methods by adding a key with the name of the function and returning a closure. Helper methods are called by referencing the method name from the $page
object in any Blade template.
The method's closure automatically receives the current $page
as its first parameter. Additional parameters can be specified as well, and passed to the method when it is called in your template.
For instance, you can add a method that identifies if the current page belongs to a particular section, for highlighting the current section in a menu template:
config.php
1<?php 2 3use Illuminate\Support\Str; 4 5return [ 6 'company' => 'Tighten', 7 'selected' => function ($page, $section) { 8 return Str::contains($page->getPath(), $section) ? 'selected' : ''; 9 },10];
This method is accessible by calling $page->selected()
from any page.
Now, we can build a menu partial that highlights the current menu item for each page:
_menu.blade.php
1<a class="{{ $page->selected('about') }}" href="{{ $page->baseUrl }}/about">About Us</a>2<a class="{{ $page->selected('projects') }}" href="{{ $page->baseUrl }}/projects">Projects</a>3<a class="{{ $page->selected('posts') }}" href="{{ $page->baseUrl }}/posts">Blog</a>
Alternatively, global helper methods can be stored in a separate helpers.php
file, located at the root level of your project. This file should return an array, and will be merged into config.php
automatically if present.