这是我的模型Receipe

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

在这里我可以得到
 $userId = 1;
 $favorite = User::find($userId)->favorite;
 return $favorite;

通过使用这个查询,我可以获取user_id表中idreceipe_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

注:
我正在尝试获取Receipe Id,如果传递了用户Id,则为Receipe Name。

最佳答案

试试下面,我也有类似的事情要做:

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

这就是你如何定义一种多对多的关系。
参数:
模型
数据透视表
要加入当前模型的列
1)中定义的连接模型的列
查看更多示例here

08-28 01:23