我有一个数据提供者来搜索世界,但我的列表视图没有显示任何记录?如何将此查询对象发送到listview? 我的网页中的每一件事都工作得很好但是在输出我的列表视图显示“找不到任何结果”这意味着我的列表视图代码没有问题。问题出在我的dataprovider和这个查询,因为我自定义了
我的控制员:
$query = new Query();
$dataProvidersearch=new ActiveDataProvider([
'query'=>$query->from('tbl_post')->Where(['like', 'title', $search])-
>andWhere(['like', 'en_title', $search])->andWhere(['like', 'content', $search])->andWhere(['like', 'en_content', $search]),
]);
这是我视图中的列表视图:
$posts = $model->getModels();
echo ListView::widget([
'dataProvider'=>$posts,
'itemView'=>'search',
'summary' => '',
'itemOptions' => [
'tag' => false
],
]);
答案 0 :(得分:1)
我不确定你这里有足够的代码可以帮助别人。即使像listview这样简单的东西也可能包含一个视图,一个控制器和两个模型文件,你的代码可能会在这些点上失败。您可能只是忘记在列表顶部包含listview库,但我们在您当前的示例中看不到。
我建议使用Gii生成列表视图。这很简单,一旦你创建它,你可以研究代码,看看你哪里出错了。您可以在此处了解如何开始使用Gii生成代码:http://www.yiiframework.com/doc-2.0/guide-start-gii.html
评论中的答案:替换和使用orWhere,没有找到结果,因为没有记录可以匹配' title'和' en_title'和'内容'和' en_content'。
答案 1 :(得分:1)
您正在$posts
提交'dataProvider'
,dataProvidersearch
而不是:
$posts = $model->getModels();
echo ListView::widget([
'dataProvider'=>$posts,
'itemView'=>'search',
'summary' => '',
'itemOptions' => [
'tag' => false
],
];
应该是:
$posts = $model->getModels();
echo ListView::widget([
'dataProvider'=>$dataProvidersearch,
'itemView'=>'search',
'summary' => '',
'itemOptions' => [
'tag' => false
],
];