Laravel 5.1使用Eloquent时加入问题

时间:2015-09-15 12:06:35

标签: php mysql laravel laravel-5

这是我的模型Receipe

 public function favorite()
{
    return $this->hasMany('App\ReceipeFavorite');
}

在这里我可以得到

 $userId = 1;
 $favorite = User::find($userId)->favorite;
 return $favorite;

使用此功能,我可以通过此查询获取user_id表中标识为receipe_favorites的记录。

即,使用user_id - 1

记录所有颜色的匹配
$favorite = User::find(1)->favorite;
return $favorite;


[{"id":1,"receipe_id":"1","user_id":"1","created_at":"2015-09-15 15:49:12","updated_at":"2015-09-15 15:49:12"},{"id":2,"receipe_id":"2","user_id":"1","created_at":"2015-09-15 15:50:07","updated_at":"2015-09-15 15:50:07"}]

现在,我想获得Receipe名称和结果。

这是我的表格结构

users
->id

receipe
->id

receipe_favorites
->id
->receipe_id
->user_id

注意:

如果用户ID已通过,我正在尝试获取Receipe Id,Receipe Name。

1 个答案:

答案 0 :(得分:2)

尝试以下方法,我有类似的事情要做:

public function favorite() {
    return $this->belongsToMany('App\Receipe', 'receipe_favorites', 'user_id', 'receipe_id');
}

这就是你定义多对多关系的方式。

PARAMS:

  1. 模型
  2. 数据透视表
  3. 要加入当前模型的列
  4. 要加入1)中定义的模型的列
  5. 查看更多示例here