Коллекции

Картография

Вы можете сопоставить элементы своей коллекции, добавив ключ map в массив коллекции в config.php и указав обратный вызов, который принимает элемент коллекции. Каждый элемент является экземпляром класса TightenCo\Jigsaw\Collection\CollectionItem, из которого Вы можете создать экземпляр своего собственного пользовательского класса, используя статический метод fromItem(). Ваш собственный класс может включать вспомогательные методы, которые могут быть слишком сложными для хранения в Вашем массиве config.php.

config.php

<?php

return [
    'collections' => [
        'posts' => [
            'map' => function ($post) {
                return Post::fromItem($post);
            }
        ],
    ],
];

Ваш собственный класс Post должен расширять TightenCo\Jigsaw\Collection\CollectionItem и может включать вспомогательные функции, ссылаться и/или изменять переменные страницы и т.д.:

<?php

use TightenCo\Jigsaw\Collection\CollectionItem;

class Post extends CollectionItem
{
    public function getAuthorNames()
    {
        return implode(', ', $this->author);
    }
}