2013-06-12 301 views
0

我有一个销售模式定义,当我打电话Quote::find('1');它没有返回我的销售对象。我的关系做错了吗?下面是表的结构:Laravel雄辩关系

报价:编号,公司名称,舞台,saleId

销售:ID,姓名,phoneNumber的

Class Quote extends Eloquent 
{ 

    protected $with = ['sale']; 

    public function sale() 
    { 
     return $this->hasOne('Sale', 'id'); 
    } 
} 

在我Sale模型我已经定义:

public function quote() 
{ 
    return $this->belongsTo('Quote'); 
} 
+0

你的意思是'Sale :: find(1)'? –

+0

不,我的意思是Quote :: find(1)。我编辑了我的问题。它返回报价而不是销售。 – ipengineer

+0

你叫'Quote :: find('1') - > sale-> name'?> –

回答

0

试试这个:

$quote = Quote::with('sale')->find(1); 

你应该可以这样去做$quote->sale->name

1

我想通了。有我的关系倒退。

Class Quote extends Eloquent 
{ 

    protected $with = ['sale']; 

    public function sale() 
    { 
     return $this->belongsTo('Sale', 'saleId'); 
    } 
} 

为了更好地理解它,我认为你可以说,在一个belongs_to的关系,外键驻留在模型的表,你正在试图创建的关系。所以上面的函数可以被读为“saleID belongsTo Sale model”。

使用has_one时,外键驻留在其他模型的表中。