Laravel Eloquent ORM关系定义

时间:2013-10-15 16:01:20

标签: orm laravel eloquent

我有模型ClearanceItem

每个许可都有一个特定项目,但不止一个许可可以有相同的项目。 从结构上讲,这只是意味着Clearance有一个item_id列。

因此,在模型中,我将clearance定义为hasOne('Item');,将item定义为belongsToMany('Clearance')

但是当我调用item时,它会给我错误clearance_item不存在,所以我认为我必须将关系定义为错误。我尝试使用belongsTo(假设很多人会触发想要一个连接表),然后我把东西拿回来了,但是这些项目在返回数据中没有间隙

1 个答案:

答案 0 :(得分:1)

也许应该是:

class Clearance extends Eloquent
{
 public function item()
 {
   return $this->belongsTo('Item');
 }

}

class Item extends Eloquent
{
 public function clearances()
 {
    return $this->hasMany('Clearance');
 }
}
你试过这个吗?您还可以再次浏览docs以查看关系的定义方式