首页 文章

获取属于联合的所有关联,其中president_id = user_id在Laravel 5.2中

提问于
浏览
0

我有3张 table :

联盟 - 协会 - 用户

一个协会属于一个联邦 .

联邦有很多协会

联盟有一个总裁:president_id,指的是用户模型

协会有一个总裁:president_id,指的是用户模型

我想得到什么:

属于fede_id == Auth :: user() - > id的联盟的所有关联

我试过了:

$associations = Association::with(['federation' =>function($query){
        $query->where('federation.president_id', Auth::user()->id);
    }])->get();

并且:

$associations = Association::with('federation')
        ->where('federation.president_id', Auth::user()->id)
        ->get();

但在第一种情况下,我将联邦关系的所有关联都归结为null,而在第二种情况下,它不知道federation.president_id,因为它查询表'关联'

知道什么是错的吗?

1 回答

  • 1

    with() 仅修改预先加载的关系 . 为了根据其关系修改查询,您正在寻找 whereHas()

    $associations = Association::whereHas('federation', function($query) {
            $query->where('president_id', Auth::user()->id);
        }])
        ->get();
    

相关问题