Отображение слагов из базы данных при маршрутизации
Я должен поддержать дружественную структуру 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']]
);
}
Проблема в том, что у меня есть несколько проверок, подобных предыдущей, и каждая из них запускается, даже если маршрут соответствует предыдущему (запускать не нужно, поэтому вызываются дополнительные запросы).
Так, как я могу добавить условный оператор некоторого вида так, чтобы он только проверял, совпадает ли маршрут, если ни один из предыдущих не имеет.