понедельник, 29 июля 2013 г.

yii Как проверить маршрут

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

$_SERVER['HTTP_X_REWRITE_URL'] = $newUrl; //стандартных методов для присвоения урла в CHttpRequest не нашел, по этому сделал небольшой подлог, после всех манипуляций, значение можно будет восстановить.

$route = Yii::app()->urlManager->parseUrl(new CHttpRequest);
$controller=app()->createController($route);

if($controller)
{
    //если контроллер существует, можно, например, сделать редирект
    $this->redirect(app()->createUrl($newUrl));
}
else
{
    //если, нет, то что ни будь другое
}

Комментариев нет:

Отправить комментарий