答案 0 :(得分:-1)
你的API调用应该是这样的: http://127.0.0.1:8080/api/web/customer?expand=orders,orderItems,products
class Customer extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'customer';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['ID', 'Name'], 'required'],
[['ID'], 'integer'],
[['Name'], 'string'],
[['PhoneNo'], 'string', 'max' => 45]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'ID' => 'ID',
'Name' => 'Name',
'PhoneNo' => 'Phone No',
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'ID']);
}
public function getOrderItems()
{
return $this->hasMany(Orderitem::className(),['Order_id' => 'ID' ])
->via('orders');
;
}
public function getProducts()
{
return $this->hasMany( Product::className() , ['ID' => 'Product_ID' ] )
->via('orderItems') ;
}
/**
* @inheritdoc
* @return CustomerQuery the active query used by this AR class.
*/
public static function find()
{
return new CustomerQuery(get_called_class());
}
/**
* @info: call : http://127.0.0.1:8080/api/web/customer?expand=orders for get customer and his orders also;
* @return type
*/
public function extraFields()
{
return ['orders','orderItems','products'];
}
}