И така, използвайки Laravel 4, имам таблица Продажби, която има връзка много към много с таблица Продукти и също така има едно към много връзки с таблица Клиенти.
Настроих моделите си по следния начин:
class Sale extends Eloquent {
...
public function products(){
return $this->belongsToMany('Product');
}
public function customers(){
return $this->belongsTo('Customer');
}
}
class Product extends Eloquent {
...
public function sales(){
return $this->belongsToMany('Sale');
}
}
class Customer extends Eloquent {
...
public function sales(){
return $this->hasMany('Sale');
}
}
Това, което искам да направя, е да върна данните за всички продажби, включително данните за всеки продукт, включен във всяка продажба, и данните за клиента, който го е купил.
В моя SalesController използвам нетърпеливо зареждане, за да отправя заявка към моите данни по този начин:
public function index()
{
return Sale::with('products', 'customers')->get();
}
Той връща обект с данни за продажба, данни за продукта, но данните за клиента са нулеви.
Как мога да постигна това с помощта на Eloquent (или персонализирана заявка)?
РЕДАКТИРАНЕ
Това е обектният низ, който връща:
[{"id":1,"customer_id":1,"date":"2013-11-21","status":1,"created_at":"0000-00-00 00:00:00","updated_at":"0000-00-00 00:00:00","products":[{"id":1,"name":"Monitor","price":50,"status":1,"created_at":"0000-00-00 00:00:00","updated_at":"0000-00-00 00:00:00","pivot":{"sale_id":1,"product_id":1,"custom_price":25,"order":1}}],"customers":null}]
customer
в единствено число, за да представлява връзка 1:n? - person Manuel Pedrera   schedule 22.11.2013id, customer_id, date, status
Клиентът има основни данни за клиента, а Продуктът има основни данни за продукта. - person Pablo.mtz   schedule 22.11.2013