如何通过雄辩的方式从单个列和另一个列中获取不同的结果?

时间:2016-03-04 16:41:20

标签: mysql arrays laravel eloquent record

我目前有2列,一列是user_id,另一列是评级。我希望最终得到我的user_id的不同结果,并为每个dinstinct user_id提供相应的评级数组。

enter image description here

在这种情况下,我希望得到3个51,52和53的数组,这些数组具有特定user_id所具有的每个评级记录的评级的嵌套数组。

这是可行的还是我只需要获取所有结果并在php中进行处理?

2 个答案:

答案 0 :(得分:1)

我猜你有一个用户表/模型。

// using userRating to reference your table as you didnt give the table/model name
$userRating = User::has("userRating")->with("userRating")->get();

这将为您提供您想要的东西,并且只为您提供评级的用户。

答案 1 :(得分:1)

这是一种相当典型的One to Many关系。您有一个拥有许多评级的用户。你应该有一个使用你帖子中的表的评级模型和一个有自己的表的用户模型。然后使用这些关系设置模型。

评级模型:

public function user() {
    return $this->belongsTo('App\User');
}

用户模型:

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

然后,如果您想获取其评级的所有用户和嵌套数组的列表,您可以使用eager loading显示如下结果:

 $users = User::with('ratings')->all();