php - 使用 Eloquent 时 Laravel 5.1 加入问题

标签 php mysql laravel laravel-5

这是我的模型 Receipe

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

在这里我可以得到

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

使用此查询,我可以在 receipe_favorites 表中获取 ID 为 user_id 的记录。

即,记录匹配所有具有 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"}]

现在,我想获得收件人姓名和结果。

这是我的表结构

表格

users
->id

receipe
->id

receipe_favorites
->id
->receipe_id
->user_id

注意:

如果传递了用户 ID,我正在尝试获取 Receipe Id、Receipe Name。

最佳答案

尝试以下操作,我也有类似的事情要做:

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

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

参数:

  1. 模型
  2. 数据透视表
  3. 要加入当前模型的列
  4. 要加入 1) 中定义的模型的列

查看更多示例 here

关于php - 使用 Eloquent 时 Laravel 5.1 加入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585667/

相关文章:

php - 用于YouTube或Vevo的正则表达式

mysql - 按照与CHILD条目相关的顺序对MYSQL SELECT进行排序

php - 无法插入 SQL 表或显示全部来自

php - 允许用户操作在浏览器中呈现的图像 - API 推荐?

php - 如何在 Eloquent 模型中创建复杂的虚拟列?

php - 拉维尔 : Nothing to Migrate

php - file_get_contents - URL 中的特殊字符

java - 无法从 JSON 获取响应

php - Apache SetEnv 前置 REDIRECT_ 。是什么赋予了?

mysql - (Laravel) 使用 "Eloquent Relationships"连接 3 个或更多表