php - Laravel 有 2 张桌子
问题描述
我正在尝试检查另一个表以从结果中删除匹配项,但无法弄清楚这一点。
$value = people::select(array('people.blog_id'))
->join('blocks', 'people.user_id', '=', 'blocks.blocker')
->where('people.user_id', $user->id)
->where('blocks.blocker', '!=', 'people.user_id')
->get()
->toArray();
我想要实现的是,当user_id
从在 blocks 表中也发现了 blocker 的人那里获取结果时,删除结果,但以下返回一个空数组。
解决方案
根据 laravel 文档
您可以使用 DB 外观上的 table 方法来开始查询。table 方法为给定的表返回一个流畅的查询构建器实例,允许您将更多约束链接到查询上,然后最终使用 get 方法获取结果。
像下面这样更改您的查询语句-
$articles = DB::table('people')
->join('blocks', 'people.user_id', '=', 'blocks.blocker')
->where('blocks.blocker', '<>', 'people.user_id')
->select('people.blog_id')
->get();
推荐阅读
- restful-authentication - act_like_restful_authentication 与 authlogic v5
- regex - 如何使用 sed 将单个转义字符替换为双精度字符
- python - 如何制作像甜甜圈图一样的时间
- javascript - ESLint 规则在 Angular 中排除某些关键字和短语?
- php - Php - 超过超时时停止线程
- ruby-on-rails - Rails 的 Puma Systemd 配置不工作
- c# - OpenTK - 如何使用累积缓冲区实现抗锯齿
- testing - 一个简单的java控制台应用程序的黑盒测试?
- flutter - 带标签的 Flutter 表单导航——如何在切换表单字段时避免不需要的空格
- javascript - Javascript对象/数组循环和创建表问题