文档地址:https://www.yiichina.com/doc/guide/2.0/db-active-record#relational-data
// manager model
class ManagerModel extends ActiveRecord
{
public function getManagerShops()
{
return $this->hasMany(ManagerShopModel::className(), ['mananger_id' => 'id']);
}
public function getShops()
{
return $this->hasMany(ShopModel::className(), ['id' => 'shop_id'])
->via('managerShops');
}
}
$managers = ManagerModel::find()
->with(['shops' => function ($query) {
$query->andWhere(['status' => 1 ]);
}])
->limit(100)
->all();
// 遍历
foreach ($managers as $manager)
{
$shops = $manager->shops;
}
class ShopModel extends ActiveRecord
{
public function getManagerShops()
{
return $this->hasMany(ManagerShopModel::className(), ['shop_id' => 'id']);
}
public function getManagers()
{
return $this->hasMany(ManagerModel::className(), ['id' => 'mananger_id'])
->via('managerShops');
}
}
$shops = ShopModel::find()
->with(['managers' => function ($query) {
$query->andWhere(['status' => 1, 'is_delete' => 1 ]);
}])
->limit(100)
->all();
// 遍历
foreach ($shops as $shop)
{
$managers = $shop->managers;
}