Yii2活动记录工作:如何在yii2模型中查询关系

时间:2016-05-20 10:41:26

标签: yii2 active-record-query

这是我的Restaurents模型:

class Restaurents extends \yii\db\ActiveRecord
{
    public function rules(){
        return [
            [['name'], 'string'],
        ];
    }
    public function getRestaurentInfo(){
        return $this->hasOne(RestaurentInfo::className(), ['restaurent_id' => 'id']);
    }
}

和我的RestaurentInfo模型:

class RestaurentInfo extends \yii\db\ActiveRecord
{
public function rules(){
        return [
            [['address',], 'string']
        ];
    }
    public function getRestaurent()
    {
        return $this->hasOne(Restaurens::className(), ['id' =>         'restaurent_id']);
     }
}

我想查询具有条件的restaurents列表: restaurent的名称类似于$ key,或者restaurent的地址类似于$ key。

我怎么做?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$restaurents = Restaurent::find()
    ->joinWith('restaurentInfo')
    ->where(['like', 'name', $key])
    ->orWhere(['like', 'address', $key])
    ->all();

我建议您花一些时间了解如何使用Active Record和Active Query。