Напишите функцию.
...
use yii\base\ViewNotFoundException;
...
$get = Yii::$app->request->get();
$path = Yii::getAlias('@web').'/views/mydir/'.$get['url'];
...
try {
// 1) тут пишите то что хотите проверить
$this->render($path, ['model' => $model,]);
} catch (ViewNotFoundException $e) {
// 2) тут выводите "удобную" ошибку, чтобы не закрывать ошибкой 500 или той которая вылезает
$this->render('default', [ 'model' => $model,]);
}
...
Можно обратится и к
Yii::getAlias('@frontend')
- а вдруг проект лежит не в папке
frontend
???
Так что никаких
return $view;
Либо вы получите представление, либо default
ViewNotFoundException это отслеживает, я давно в Yii отказался от file_exists потому что он не эффективен и не работает, да, если файл будет, ошибки не вылезут, а если файла не будет, вы столкнётесь с ViewNotFoundException
Так почему бы сразу не отловить ошибку и просто вывести её в виде текста на странице?
Гораздо лучше чем ошибка на всю страницу.
Ну ведь Easy? Правда? :)))