首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yii2 2-如何使用搜索模型搜索值

yii2 2-如何使用搜索模型搜索值
EN

Stack Overflow用户
提问于 2018-04-11 11:35:07
回答 1查看 1K关注 0票数 0

我正在研究yii2。我有一个模型名RouteMeters。在这里,我有一个meter_id,它保存了表的所有id。在索引视图中,我显示了meter_id的值,如下所示

代码语言:javascript
复制
[
            'attribute' => 'mter_id',
            'label' => 'Meters',
            'value' => function ($data) {
                if (is_object($data->mter))
                    return $data->mter->meter_msn;
                return ' - ';
            },

        ],

图如下:

但是当我用电表号码搜索表时,却找不到记录。

下面是我对RouteMeters的搜索模型

代码语言:javascript
复制
 public function search($params)
{
    $query = RouteMeters::find();

    // add conditions that should always apply here

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    $this->load($params);

    if (!$this->validate()) {
        // uncomment the following line if you do not want to return any records when validation fails
        // $query->where('0=1');
        return $dataProvider;
    }

    // grid filtering conditions
    $query->andFilterWhere([
        'id' => $this->id,
        'route_id' => $this->route_id,
        'mter_id' => $this->mter_id,
        'user_id' => $this->user_id,
    ]);
    if (!Yii::$app->user->isGuest && in_array(Yii::$app->user->identity->user_role, [3,4])) {
        $query->joinWith('teamsuser', true);
        $query->andFilterWhere(['=', 'user.group_id', Yii::$app->user->identity->group_id]);
    }

    $query->orderBy(['id' => SORT_DESC]);
    return $dataProvider;
}

现在,在我的搜索模型中,我想要放置一个查询,它将在我的索引视图中搜索时,给出所选的米数的记录。

表的序列号在我的meters表中,文件名为meter_msn,我想加入它。

我不知道该怎么处理我的搜索模型。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-11 11:47:55

代码语言:javascript
复制
public function search($params)
{
    $query = RouteMeters::find()->joinWith('mter');

    // add conditions that should always apply here

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    $this->load($params);

    if (!$this->validate()) {
        // uncomment the following line if you do not want to return any records when validation fails
        // $query->where('0=1');
        return $dataProvider;
    }

    // grid filtering conditions
    $query->andFilterWhere([
        'id' => $this->id,
        'route_id' => $this->route_id,
        //'mter_id' => $this->mter_id,
        'user_id' => $this->user_id,
    ]);
    if (!Yii::$app->user->isGuest && in_array(Yii::$app->user->identity->user_role, [3,4])) {
        $query->joinWith('teamsuser', true);
        $query->andFilterWhere(['=', 'user.group_id', Yii::$app->user->identity->group_id]);
    }

    $query->andFilterWhere(['like', 'meterTableName.meter_msn',  $this->mter_id]);
    $query->orderBy(['id' => SORT_DESC]);
    return $dataProvider;
}

教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49774084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档