Yii2过滤器具有多种关系

时间:2015-11-10 16:37:52

标签: yii2

我只是学习并使用Yii2而且我在LoanSearch模型中遇到了过滤问题。

我有3个表,客户,人员和贷款。

对于customerModel有关系:

public function getPerson()
{
    return $this->hasOne(Person::className(), ['id' => 'person_id']);
}

对于LoanModel有关系:

public function getCustomer()
{
    return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
}

目的: 在贷款gridview中,我想在Customer表中使用人名进行过滤 包含Person的外键。

请帮助指导我。

感谢。

1 个答案:

答案 0 :(得分:0)

首先,您要声明公共属性$ person和$ cutormer进行搜索,并在搜索模型上添加过滤器,例如:

->andFilterWhere(['like', 'person.name', $this->person])
->andFilterWhere(['like', 'customer.name', $this->customer]);

此外,您应该为此属性添加安全规则,例如:   [['person', 'customer'], 'safe'] on rules()方法