Я пытаюсь сделать поисковый запрос для своих блогов веб-сайта с помощью yii2 QueryBuilder, но есть ошибка, подобная этой, когда я пытаюсь выполнить мой запрос с помощью ->all()
. вот ошибка: strtr() expects parameter 1 to be string, object given
. И вот моя модель и контроллер. Я понятия не имею, что вызывает проблему.Проблема в поиске здания с помощью запроса QueryBuilder yii2
контроллер:
public function actionSearchBlog()
{
$model = new Blog();
if ($model->load(Yii::$app->request->post())) {
Blog::searchBlog($model->search);
} else {
return $this->render('search',['model' => $model]);
}
}
Модель:
public static function searchBlog($search = null)
{
$search = new Query();
$result = $search->select('id','title','blog','picture')
->from('blog')
->where(['like' , 'title' , $search])
->orWhere(['like' , 'blog' , $search])
->all();
echo '<pre>';
var_dump($result);
die();
}
Я попробовал запрос без ->all()
в конце, но значение var_dump
будет сам запрос и он не будет выполнен. и с ->all()
Я получаю эту ошибку.
'$ search = new Query;' и '-> orWhere (['like', 'blog', $ search])'. Вы передаете объект вместо строки. Переименуйте '$ search = new Query;' в '$ query = new Query;' – ineersa
@ineersa Я пытаюсь проверить искомое слово в db с помощью запроса, что еще я могу сделать для выполнения этой задачи? – sobbe
Начать использование хорошей IDE, 'public static function searchBlog ($ search = null)' и '$ search = new Query();'. Вы издеваетесь надо мной или srsly не видите, что не так в вашем коде. – ineersa