Отображение слагов из базы данных при маршрутизации

Я должен поддержать дружественную структуру URL для проекта.

В CakePHP есть несколько таблиц со столбцом слагов, как я могу направить слаг на контроллер наиболее эффективным способом.

Сначала я проверял, существует ли слаг в таблице, если слаг существует, используйте маршрут:

    $c = TableRegistry::get('cateogories');
    $result= $c->find()->select(['id'])->where(['url'=>$slug])->toArray();
    if(count($result) > 0) {
        $routes->connect(
            '/:slug',
            ['controller' => 'Categories', 'action' => 'index', 'id' => $result[0]['id']]
        );
    }

Проблема в том, что у меня есть несколько проверок, подобных предыдущей, и каждая из них запускается, даже если маршрут соответствует предыдущему (запускать не нужно, поэтому вызываются дополнительные запросы).

Так, как я могу добавить условный оператор некоторого вида так, чтобы он только проверял, совпадает ли маршрут, если ни один из предыдущих не имеет.

Ответы на вопрос(1)

Ваш ответ на вопрос