Коллекции

Пути

Настройка пути по умолчанию

По умолчанию каждому из элементов Вашей коллекции (если они расширяют родительский шаблон) будет назначен путь, где первый сегмент - это имя коллекции, а второй сегмент - это имя файла, преобразованное в URL-адрес "slug" (слаг) все строчные буквы, слова разделены тире. Таким образом, путь по умолчанию для файла с именем My First Blog Post.md в коллекции с именем posts будет /posts/my-first-blog-post.

Однако Jigsaw дает Вам возможность настраивать пути Вашей коллекции, добавляя ключ path в массив Вашей коллекции.

Сокращение пользовательский путей

Вы можете указать путь к Вашей коллекции в виде строки. В этой строке Вы можете ссылаться на значения любых переменных, которые определены в передней части YAML элемента коллекции, указав имя переменной в квадратных скобках {}. Если каждый из Ваших элементов коллекции включает, например, переменную title, Вы можете определить свой путь как:

'path' => 'blog/{title}'                             // 'blog/Title Of First Post'

Кроме того, доступны переменные filename (содержащие имя файла без расширения) и collection (содержащие имя коллекции):

'path' => '{collection}/{filename}'                  // 'posts/my first blog post'

В большинстве случаев при использовании имен файлов или заголовков Вы захотите «объединить» их, когда они используются как часть пути. Для этого добавьте разделитель к имени переменной:

'path' => '{collection}/{-filename}'                 // 'posts/my-first-blog-post'
'path' => '{collection}/{_filename}'                 // 'posts/my_first_blog_post'

Если Вы включили дату в качестве переменной в элементы коллекции (в формате ГГГГ-ММ-ДД), Вы можете управлять форматированием этой даты в своем пути, поставив после имени переменной вертикальную черту и используя коды форматирования даты PHP. Для любых / в Вашем коде форматирования даты Jigsaw создаст подкаталоги по мере необходимости:

'path' => '{collection}/{published|Y-m-d}/{-title}'  // 'posts/2017-03-27/title-of-first-post'
'path' => '{collection}/{published|Y/m}/{-title}'    // 'posts/2017/03/title-of-first-post'
'path' => 'blog-{published|F-Y}/{-title}'            // 'blog-March-2017/title-of-first-post'

Замыкание пользовательский путей

Хотя сокращение пути позволяет Вам легко создавать наиболее распространенные форматы постоянных ссылок, Вы также можете вернуть закрытие из path, если Вам требуется больше контроля. Замыкание получит содержимое текущего элемента коллекции в качестве своего первого параметра. Например:

use Illuminate\Support\Str;

'path' => function ($page) {
    return 'posts/' . ($page->featured ? 'featured/' : '') . Str::slug($page->getFilename());
},