2016-02-17 3 views

Répondre

-1

votre API appel doit comme ceci: 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']; 
} 

}

enter image description here