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

为什么我的listview在yii2中找不到任何记录?,yii2,Yii2,我有一个数据提供者来搜索世界,但我的listview不显示任何记录?如何将此查询对象发送到listview? 我的网页中的每件事都做得很好,但在输出时我的列表视图显示“未找到任何结果”,这意味着我的列表视图代码没有问题。问题在于我的数据提供者和这个查询,因为我自定义了它 我的控制器: $query = new Query(); $dataProvidersearch=new ActiveDataProvider([ 'query'=>$query->from('tb

我有一个数据提供者来搜索世界,但我的listview不显示任何记录?如何将此查询对象发送到listview?
我的网页中的每件事都做得很好,但在输出时我的列表视图显示“未找到任何结果”,这意味着我的列表视图代码没有问题。问题在于我的数据提供者和这个查询,因为我自定义了它

我的控制器:

$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
 ],

]))

我不确定您是否有足够的代码可供他人帮助。即使是像listview这样简单的东西也可能由一个视图、一个控制器和两个模型文件组成,而您的代码可能会在这些方面出现故障。您可能只是忘记了在视图顶部包含listview库,但在您当前的示例中我们看不到这一点

我建议使用Gii生成listview。这很简单,一旦创建了它,就可以研究代码,看看哪里出了问题。您可以在此处看到如何开始使用Gii生成代码:


从评论中回答:将andWhere替换为orWhere,找不到任何结果,因为没有记录可以匹配“title”和“en_title”以及“content”和“en_content”。

您将提交
$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

    ],
];

您好,我写了足够的代码,对于列表视图,我们在控制器中有一个数据提供程序,列表视图在我的视图中。我的gii没有列表视图生成器要生成listview,您可以进入gii,然后进入CRUD生成器,并确保选项“索引页中使用的小部件”设置为listview而不是GridView。我所说的“代码不足”的意思是,在创建listview的过程中可能会出现许多故障点,而这里似乎没有足够的代码来确定故障发生的位置。根据我对Yii2的经验,这看起来不足以满足您的需要,这就是我建议使用gii的原因。乍一看,问题可能是您的视图使用了$model,但我没有看到我在自己的代码中习惯使用的模型文件。Yii2喜欢有一个从数据库获取信息的模型,还有一个保存表单验证字段信息的模型。这可能不是您的要求,但这是我在Yii2项目中经常看到的。我的网页中的每件事都做得很好,但在输出时我的列表视图显示“未找到任何结果”,这意味着我的列表视图代码没有问题。问题在于我的数据提供者和这个查询,因为我自定义了它。gii生成原油,但我不想要积垢,我想要自定义列表视图哦,好的。对于where语句,您可能需要尝试使用“或”而不是“和”。搜索是否符合“标题”和“en_标题”以及“内容”和“en_内容”的条件?或者您正在“标题”或“授权”或“内容”或“en_内容”中搜索标准?为了确保正确连接到数据库,请使用无WHERE子句进行简单查询,看看是否得到任何结果。