根据yii2中数据库中的字段显示Gridview

时间:2016-12-01 05:54:17

标签: gridview yii2

我曾使用GridView来显示我的表格。我需要的是,如果数据库表缺失中的字段活动为1,则显示该值,否则不显示该值。 现在这是我的GridView代码

public function actionListfound()

这是我在控制器中使用的,但它不起作用

$searchModel = new \app\models\MissingSearch();

$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

return $this->render('cir_bookfounds', [
    'searchModel' => $searchModel,
    'dataProvider' => $dataProvider,
    ]);

{

{{1}}

}

现在我如何在GridView中显示。

1 个答案:

答案 0 :(得分:1)

使用dataProvider的{​​{1}}属性中指定的数据模型填充GridView。在您的代码中,这是GridView。因此,在准备$dataProvider时需要应用过滤器active=1

<强>更新

根据您的控制器代码,您应该在$dataProvider模型的search函数内设置过滤器。

MissingSearch

更新2

根据您的进一步评论,您对两个页面使用相同的搜索模型 - 但要求在一个页面中,您将显示数据public function search($params) { $query = Missing::find()->where(['active' => 1]); // add conditions that should always apply here $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); ... //more code ,第二个显示active=0。这可以通过引入以下更改来实现:

active=1模型

MissingSearch

您可以从控制器发送public function search($params, $activeFlag = 0) { $query = Missing::find()->where(['active' => $activeFlag]); // add conditions that should always apply here $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); ... //more code 的相应值。您发布的控制器代码现在可以写为:

$activeFlag

同样,在您使用public function actionListfound() { $active = 1; $searchModel = new \app\models\MissingSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams, $active); return $this->render('cir_bookfounds', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } 显示数据的其他网页的控制器操作中,只需设置active=0