【发布时间】:2016-01-27 07:46:57
【问题描述】:
我正在尝试使用 yii2 QueryBuilder 为我的网站博客进行搜索查询,但是当我尝试使用 ->all() 执行我的查询时出现这样的错误。这是错误:strtr() expects parameter 1 to be string, object given。这是我的模型和控制器。我不知道是什么导致了这个问题。
控制器:
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 我正在尝试使用类似查询检查 db 中搜索到的单词,我还能做些什么来执行此任务?
-
开始使用好的 IDE,
public static function searchBlog($search = null)和$search = new Query();。你是在开玩笑还是看不出你的代码有什么问题。 -
@ineersa OMG:谢谢,那次冲突是因为在编写查询后进行了编辑:| ,我完全错过了
标签: php mysql yii yii2 query-builder