【问题标题】:How to if id exist from one model to another model?如果从一个模型到另一个模型存在 id 怎么办?
【发布时间】:2020-02-07 05:47:52
【问题描述】:

我有用户和玩家团队模型。当某个团队为他们的团队挑选用户时。然后它存储在像team_id和player_id这样的playerteam模型中。(player_id是user_id); 现在我只想显示那些不在 playerteam 模型中的用户。 为此我已经通过了

User::with('playerTeam)->get() 

在刀片文件中。它显示了所有用户,但我只想显示那些 id 不在 playerteam 模型中的用户。 这些是我尝试过的代码 在用户模型中

public function playerTeam()
{
    return $this->hasMany(PlayerTeam::class,'player_id');
}

控制器

$data['users'] = User::with('playerTeam')->get();
$data['playerteam'] = PlayerTeam::get();
return view('page',$data);

那么,我如何显示不在 playerteam 模型中的用户。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    您可以使用doesntHavewhereDoesntHave

    $data['users']  = User::whereDoesntHave('playerTeam', function ($query) {
        $query->where('column', 'value');
    })->get();
    

    甚至更简单

    $data['users']  = User::doesntHave('playerTeam')->get();
    //...
    

    查看文档here

    【讨论】:

      【解决方案2】:

      你可以像这样使用 eloquent doesntHave 方法。

      User::doesntHave('playerTeam)->get();
      

      它将返回所有没有 playerTeam 关​​系的用户。

      在此处阅读文档 laravel doesntHave

      【讨论】:

        【解决方案3】:
           $users = User::doesntHave('playerTeam')->get();
        

        【讨论】:

          【解决方案4】:

          使用回调函数

          使用whereDoesntHave

          $data['users']  = User::whereDoesntHave('playerTeam', function ($query) {
              $query->where('column', 'value');
          })->get();
          

          参考以下链接

          whereDoesntHave

          【讨论】:

          • 希望它的工作!!。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-13
          • 2020-06-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多