CakePHP 3.1 маршруты с условными выражениями

Я использую CakePHP 3.1, я пытаюсь создать маршрут, который работает следующим образом
псевдокод

:category/:sub-category/:slug
if(:subcategory doesn’t exist){ treat as :controller/:action }

:category/:controller/:action
:category/:controller

if(:controller doesn’t exist){ treat as action }

:category/:action

if(:action doesn’t exist){ then action is view use as slug }

:category/:slug


if(:slug doesn’t exist){return 404 }


:category/:sub-category/
connect( controller=>article, action=>view, :subcategory, :slug=>’home’
:category/)
connect( controller=>article, action=>view, :subcategory=>none , :slug=>’home’)

И категория будет контролировать тему, которая меняет стили, это я бы добавил в мой ArticlesController.php

Это вообще возможно? Если проверка того, что что-то существует, выходит за рамки маршрутов, я не возражаю против проверки inList. В качестве категории и подкатегории будет фиксированная сумма.

Это сложно для маршрутов? я должен просто сделать это в ArticlesController.php под действием view? и просто сделать

$routes->connect('/:slug', ['controller' => 'articles', 'action' => 'view']);

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …