Laravel 5.2获取用户注释和注释用户

时间:2017-01-15 08:07:52

标签: mysql laravel eloquent many-to-many relational-database

我有两张桌子:

  

第一个

用户表包含用户信息,包括用户ID。

  

第二次

注释表是哪个容器用户注释包括注释ID。

我之间有many to many的关系,我之间有中间表,其中包含与user_id匹配的note_Id

一切都很完美,但我希望获得用户注释和其他具有相同注释的用户。

  

例如

注意1 ID 1,2,3 的用户可以看到它。

我想使用一个查询来获取已登录用户创建的所有注释,还可以使用other users来查看此注释。

  

我尝试了什么

$usernotes  = User::where('id', '=', Auth::user() -> id) -> first();
@foreach($usernotes -> notes as $usernote)
      {{ $usernote -> title }}
@endforeach

这会返回所有用户注释,但不会返回所有注释的用户。

2 个答案:

答案 0 :(得分:1)

此查询将获得与当前经过身份验证的用户具有相同注释的用户(您提出的经过身份验证的用户除外):

Note::whereHas('users', function($q) {
    $q->where('id', auth()->user()->id);
})->with(['users' => function($q) {
    $q->where('id', '<>', auth()->user()->id);
}])->get();

答案 1 :(得分:0)

ggplot(df, aes(measured, simulated, colour = indep_cumulative)) +
  geom_point() +
  geom_smooth(method ="lm", se = F) +
  geom_text(aes(x=-Inf, y=Inf, label=RMSE, vjust=label_vjust),
            hjust=0) +
  facet_grid(drain~scenario)

排除loggedInUser:

$loggedInUser = Auth::user();
@foreach($user->notes as $userNote)
      Note Title: {{ $userNote -> title }}
      @foreach($userNote->users as $user)
            User Name: {{ $user->name }}
      @endforeach
@endforeach