Php Laravel雄辩的销售产品客户关系

Php Laravel雄辩的销售产品客户关系,php,laravel,laravel-4,eloquent,eager-loading,Php,Laravel,Laravel 4,Eloquent,Eager Loading,因此,使用Laravel 4,我有一个销售表,它与产品表有多对多关系,与客户表也有一对多关系 我的模型设置如下: class Sale extends Eloquent { ... public function products(){ return $this->belongsToMany('Product'); } public function customers(){ return $this->belongsTo('C

因此,使用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');
    }
}
我要做的是返回所有销售的数据,包括每次销售中包含的每个产品的数据以及购买该产品的客户的数据

在mySalesController中,我使用渴望加载来查询我的数据,如下所示:

public function index()
{
    return Sale::with('products', 'customers')->get();
}
它返回一个包含销售数据、产品数据的对象,但客户数据为空

如何使用雄辩(或自定义查询)实现这一点

编辑

这是它返回的对象字符串:

[{"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}]

尝试将您的
客户关系更改为单数:

class Sale extends Eloquent {
...
    public function products(){
        return $this->belongsToMany('Product');
    }
    public function customer(){ // <- here
        return $this->belongsTo('Customer');
    }
}
类销售扩展了口才{
...
公共功能产品(){
返回$this->belongtomany(“产品”);
}
公共函数customer(){//belongsTo('customer');
}
}

(从评论转到回答)

我看你做得对。我想问题出在别的地方。我对你们的代码有点困惑。在销售模型中,表示1:n关系不应该是
customer
单数吗?我们可以看到数据定义吗?sales表是否有customer\u id字段?@J.T.Grimes:我的sales表有:
id、customer\u id、日期、状态
customer有基本的客户数据,Product有基本的产品数据。@ManuelPedrera我将其更改为singular,它成功了!令人惊叹的你能把你的评论作为答案,这样我就可以接受它是正确的吗??