Поставил либу, которая в бд в поле slug генерирует его из тайтла новости
Для этого есть из коробки поведение, не нужны либы дополнительные:
https://www.yiiframework.com/doc/api/2.0/yii-behav...
Просто подключаете в модели и указываете что транслитерировать и куда.
Вы в экшене нашли модель, но при этом потом ищите ее еще раз, смысл?
public function actionView($slug)
{
$model = News::find()->where(['slug' => $slug])->one(); //вот тут вы уже нашли модель по slug
return $this->render('view', [
'model' => $this->findModel($slug), //вот тут вместо того что бы передать найденную модель, дергаете функцию findModel непонятно зачем
]);
}
Как-то так должно быть
public function actionView($slug)
{
if($model = News::find()->where(['slug' => $slug])->one()){
return $this->render('view', [
'model' => $model
]);
}
throw new NotFoundHttpException('Не найдено такой новости, может под стол закатилась, мы поищем завтра.');
}
в урл менеджере что-то типа
'rules' => [
'/' => 'site/index',
'/news/<slug>/' => 'news/view',
],