对Laravel雄辩的本地查询

时间:2018-03-08 07:48:43

标签: eloquent laravel-5.2

美好的一天,我有3个表产品用户,以及 product_user 表。

如果该行包含数据透视数据,我想获取主表中的所有数据。

实施例

产品

ID     Name
1      user1-------------> is in the pivot table **product_user**
2      user2
3      user3-------------> is in the pivot table **product_user**

用户

product_id    user_id
    1            1
    3            2

product_user

SELECT p.`name`, u.`first_name`
FROM product_user AS pu
LEFT JOIN products AS p
    ON pu.`product_id` = p.id
LEFT JOIN `users` AS u
    ON pu.`user_id` = u.`id`

在这种情况下,如何获取包含数据透视数据的两个主表中的数据?

如何以laravel方式实现此查询的结果?

name             first_name
sample 1         user firstname

结果

var date1 = joiningDate.split('-');
  var tempjoiningDate = date1[1] + '-' + date1[0] + '-' + date1[2];
  var date2 = birthdayDate.split('-');
  var tempbirthdayDate = date2[1] + '-' + date2[0] + '-' + date2[2];
  var jd = new Date(date1[0], date1[1] - 1, date1[2]);
  var bd = new Date(date2[0], date2[1] - 1, date2[2]);
  if (jd <= bd) {
  console.log("correct dates");
  }
  else {
  console.log("Incorrect dates");
  }

1 个答案:

答案 0 :(得分:0)

您与BelongsToMany关系ProductUser

class ProductUser extends Model {

    public function product() {
        return $this->belongsTo(Product::class);
    }

    public function user() {
        return $this->belongsTo(User::class);
    }

}

$pivots = ProductUser::with('product', 'user')->get();
foreach($pivots as $pivot) {
    // $pivot->user->first_name
    // $pivot->product->name
}