2013-10-13 79 views
0

我想与数据透视表或通过引用表中的ID具有一对一的关系。Laravel 4一对一关系

我目前有一个与股票表具有一对多关系的电影表,每个股票项目都需要一种格式,但是我希望这些格式是格式集合列表,所以我创建了一个格式表格有2列编号和名称

一般情况下我想补充一个业态编号栏,库存表,但是我不能确定如何将与雄辩ORM工作,或者如果它甚至有可能/最好的做法

抱歉,如果这很难理解,不能完全弄清楚解释它的最佳方式

+0

也许你可以画出来吗? http://dbdsgnr.appspot.com/app –

+0

[ERD图](http://puu.sh/4Pn6R.png) 就像这样,我该如何定义与雄辩的关系 –

回答

0

结构你的愿望是相当标准的做法。这很有可能!

您将使用哪种雄辩关系取决于关系的方向。每个Stock有一个Format(一对一)。但每个Format可以分配到多个Stock(一对多)。

对于前者,你的Stock雄辩模型将有一个hasOne()一对一的关系。

class Stock extends Eloquent { 

    public function format() 
    { 
     return $this->hasOne('Format'); 
    } 
} 

对于后者,你的口才Format模式将有一个hasMany()一个一对多的关系。

class Format extends Eloquent { 

    public function stock() 
    { 
     return $this->hasMany('Stock'); 
    } 
} 

请注意,具有这两个定义是完全可以接受的和正常的。这真的只取决于你需要你的关系走向哪个方向。如果您从不需要查找Stock属于特定的Format,则不需要一对多关系。

另请注意,如果您的列名不易被Eloquent猜测,则可能需要添加列键参数。例如:

return $this->hasOne('Format', 'my_format_id');