Yii2 UrlManager.Если подходящий маршрут возвращен 404 - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть такая маршрутизация в моей конфигурации

'vakansii/<country_slug>/<city_slug>' => 'vacancies/country-city',
'vakansii/<country_slug>/<category_slug>' => 'vacancies/country-category',

Когда я перехожу по ссылке

domain.com/vacansii/ukraine/city 

- все в порядке

Но если я перехожу по ссылке

domain.com/vacancii/ukraine/categoryname 

- у меня ошибка 404.

Разбор находит совпадение по первому правилу и останавливается там.Как я могу сделать, если матч возвращает 404, чтобы продолжить разбор до конца и попробовать другие правила, прежде чем я получу последние 404?Возможно ли это?

Вот также пример действий моего контроллера.

//  vakansii/<country_slug>/<city_slug>

public function actionCountryCity($country_slug, $city_slug)
{
    $country = $this->findCountryBySlug($country_slug);
    $city = $this->findCityBySlug($city_slug);

    $query = Vacancies::find()
    ->where(['country_id' => $country->id, 'city_id' => $city->id])
    ->orderBy(['id' => SORT_DESC]);



//  vakansii/<country_slug>/<category_slug>

public function actionCountryCategory($country_slug, $category_clug)
{
    $country = $this->findCountryBySlug($country_slug);
    $category = $this->findCategoryBySlug($category_clug);

    $query = Vacancies::find()
    ->where(['country_id' => $country->id, 'category_id' => $category->id])
    ->orderBy(['id' => SORT_DESC]); 
...