【发布时间】:2021-11-06 16:03:52
【问题描述】:
如何使用 Laravel Eloquent 编写此查询
"SELECT * FROM links WHERE (user_id = 1 OR user_ip = '127.0.0.1') AND id = 53 LIMIT 1"
我写过这个: `
$link = Link::query()
->where('user_id', Auth::id())
->orWhere('user_ip', \request()->ip())
->with('clicks')
->findOrFail($id);
而这个的SQL版本是:"SELECT * FROM links WHERE user_id = 1 OR user_ip = '127.0.0.1' AND id = 53 LIMIT 1";
它总是显示出意想不到的结果,例如: 即使 id 为 52、53、54,它也每次显示 id 51 的结果,但结果显示为 id 51。
谢谢 塔米姆
【问题讨论】:
-
你能用你的数据库结构和相关表中的数据来编辑你的问题吗?
-
你有没有考虑到还有一个OR条件,先执行AND然后OR条件
-
我得到了解决方案,谢谢重播
标签: laravel eloquent query-builder laravel-query-builder