我正在研究yii2。我有一个模型名RouteMeters。在这里,我有一个meter_id,它保存了表的所有id。在索引视图中,我显示了meter_id的值,如下所示
[
'attribute' => 'mter_id',
'label' => 'Meters',
'value' => function ($data) {
if (is_object($data->mter))
return $data->mter->meter_msn;
return ' - ';
},
],图如下:

但是当我用电表号码搜索表时,却找不到记录。
下面是我对RouteMeters的搜索模型
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,我想加入它。
我不知道该怎么处理我的搜索模型。
任何帮助都将不胜感激。
发布于 2018-04-11 11:47:55
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;
}https://stackoverflow.com/questions/49774084
复制相似问题