使用雄辩的laravel 5.6从表中获取记录,该表中的delete_organization_id数组不包含组织ID

时间:2018-07-15 03:57:18

标签: laravel eloquent

我有一个表“ posts”,通常有“ id,title,content,...,deleted_for_organization”列

其他表格:具有ID,名称,描述的组织

用户:ID,名称,电子邮件,密码,organization_id

当前,我将组织ID以json数组格式(例如[1,2,3])存储在Deleted_for_organization列中。这表示该帖子已被这些组织删除,并且对任何组织成员都不可见。

现在,每当请求加载所有帖子时,我只希望那些没有雄辩地对其组织删除的帖子。

这是可能的,还是我需要创建另一个数据透视表来维护诸如许多之类的关系。

在浏览laravel雄辩的文档时,我遇到了

$posts = App\Post::whereDoesntHave('comments', function ($query) { $query->where('content', 'like', 'foo%'); })->get();

但是,我不知道这是否适合我的问题。

2 个答案:

答案 0 :(得分:0)

使用此代码检索所有尚未删除的帖子。然后将$ undeletedPosts传递到您的刀片视图文件,并通过它们的foreach()循环遍历您想要的数据。这应该可以,请告诉我是否适合您。

auto

答案 1 :(得分:0)

这就是您要寻找的东西。

$posts = Post::whereRaw("not json_contains(deleted_for_organization , '[".Auth::user()->organization_id."]') OR deleted_by_org is NULL")->get();