@H_502_0@本文实例讲述了Yii2.0表关联查询的方法。分享给大家供大家参考,具体如下:
@H_502_0@你可以使用 ActiveRecord 来进行关联查询(比如,从A表读取数据时把关联的B表数据也一起读出来),在Active Record中,获取关联数据可以像访问主表ActiveRecord对象的属性(property)一样简单。
@H_502_0@比如,通过合适的关系声明,你可以使用 $customer->orders 来获取一个 Order 对象数组,代表该客户下的订单。
@H_502_0@要声明一个关系(relation),定义一个getter方法,该方法返回一个 yii\db\ActiveQuery 对象,拥有关联上下文信息,这样将只查询符合条件的相关数据。比如:
<div class="jb51code">
<pre class="brush:php;">
class Customer extends \yii\db\ActiveRecord
{
public function getOrders()
{
// Customer has_many Order via Order.customer_id -> id
return $this->hasMany(Order::className(),['customer_id' => 'id']);
}
}
class Order extends \yii\db\ActiveRecord
{
// Order has_one Customer via Customer.id -> customer_id
public function getCustomer()
{
return $this->hasOne(Customer::className(),['id' => 'customer_id']);
}
}