为什么我的listview没有在yii2中找到任何记录?

时间:2017-07-21 15:49:50

标签: yii2

我有一个数据提供者来搜索世界,但我的列表视图没有显示任何记录?如何将此查询对象发送到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
 ],

]);

2 个答案:

答案 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

    ],
];