首页 > 解决方案 > 如何通过使用 MongoDB 中的 Laravel 雄辩关系在关系字段上应用条件来获取数据?

问题描述

我正在使用 MongoDB 4.0 在 Laravel 5.7 中工作

Post Model 中定义的关系如下:

public function user(){
    return $this->hasOne(Users::class,'_id','user_id');
}

尝试使用查询获取数据:

$posts = Post::with('user')->whereHas('user',function($q){
    $q->where('first_name', 'Test User');
});

给定用户上传了一些帖子,但我一无所获。如何使用 Laravel eloquent Relations 获取给定用户上传的帖子?

标签: phplaravelmongodb

解决方案


您可以反转查询并检索与用户相关的所有帖子。

//In User.php Model
use App\Post;

public function posts(){
    return $this->hasMany(Post:class);
}

检索数据:

// Retrieving the data
public function getRelatedPosts(){
    $user = User::where('first_name', 'Jignasa')->first();
    $posts = null;
    if(!empty($user)){
        $posts = $user->posts;
    }
    return $posts;
}

推荐阅读