HI All,
This example will help you how to get products details of customer using restful API call,
your API call should like this : 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']; }
}
your API call should like this : http://127.0.0.1:8080/api/web/customer?expand=orders,orderItems,products
}