问题描述
我将laravel 6.xx与jenssegers / laravel-mongodb一起使用。 以前,我使用MysqL,并且查询工作正常,没有任何问题。 当我使用laravel MongoDB时,以下查询返回空值。
$user_id = Auth::id();
$data = Post::active()
->wheredoesntHave('PostBlock',function($qry) use ($user_id) {
$qry->where('user_id',$user_id);
})
->whereIn('Post_permission',['public','request'])
->orWhere(function($query) use ($user_id) {
$query->where('Post_permission','private')
->whereHas('PostAccess',function($qry) use ($user_id) {
$qry->where('user_id',$user_id);
});
})
->get();
如果我注释掉了或在哪里然后工作。
/*->orWhere(function($query) use ($user_id) {
$query->where('Post_permission',$user_id);
});
})*/
帖子集:
+------+-----------------+-----------+-----------------------+--------------------+
| id | post_name | status | post_permission | body |
| | | | | |
+---------------------------------------------------------------------------------+
| 1 | public post | | public | some text |
| | | 1 | | |
+---------------------------------------------------------------------------------+
| 2 | private post | | private | some text |
| | | 1 | | |
+------+--------------------------------------------------------------------------+
| 3 need approval post| 1 | | some text |
| | | | request | |
+------+-----------------+-----------+-----------------------+---------------------
PostBlock集合:
|---------------------|------------------|
| user_id | post_id |
|---------------------|------------------|
| | |
|---------------------|------------------|
PostAccess收藏集(实际上是私人收藏集):
|---------------------|------------------|
| user_id | post_id |
|---------------------|------------------|
| | |
|---------------------|------------------|
PostRequest集合:
+---------------------+------------------+--------+
| user_id | post_id | status |
+-------------------------------------------------+
| | | |
+---------------------+------------------+--------+
我的愿望结果将是:
如果用户ID在 PostBlock 集合中,则这些帖子将不显示给用户。
如果用户ID在 PostAccess 集合中,则私人帖子将显示给用户
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)