【问题标题】:Get Model where relationship = id获取关系 = id 的模型
【发布时间】:2017-03-01 00:12:28
【问题描述】:

想知道其他人是如何实现以下目标的吗?

表格:

teams 
teams_users (pivot many teams, many users)
users

我想要达到的目标

$teams->user->where('user_id', $id)->get();

但是我必须运行一个循环,并在团队模型上创建另一个方法来 pluck(id, name)

// foreach ($teams as $team) {
//     # code...
//     dump($team->getUserIdsAttribute());
// }

你知道更好的方法吗?

【问题讨论】:

    标签: laravel eloquent laravel-5.3


    【解决方案1】:

    如果您尝试获取具有特定用户 ID 的所有团队。试试

    $teams = Team::with(['users' => function ($query) use ($id) {
        $query->where('id', '=', $id);
    }])->get();
    

    或通过用户

    $user = User::with('teams')->find($id);
    

    这是假设您已经在每个模型中定义了belongsToMany() 关系。

    【讨论】:

      【解决方案2】:

      也许你会喜欢用更传统的方式来做

          use Illuminate\Database\Eloquent\Builder;
          $team = Team::whereHas('user',function(Builder $query) use ($id){
              $query->where( 'user_id' , $id );
          })->get();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-20
        • 2017-01-12
        • 2016-08-30
        • 2015-10-09
        • 2019-07-16
        • 2014-03-04
        • 1970-01-01
        • 2018-10-21
        相关资源
        最近更新 更多