php - Laravel 和 Where 不存在
问题描述
这是我的查询;
SELECT * FROM digital_cases WHERE name LIKE $request->name . '%'
AND added_by IN (SELECT id FROM assistants WHERE firstname LIKE $request->addedBy . '%');
我试过这个:
$digital_cases = DB::table('digital_cases');
if ($request->has('caseName')) {
$digital_cases = $digital_cases->where('name', 'LIKE', $request->caseName . '%');
if ($request->has('addedBy')) {
$addedBy = $request->addedBy;
$digital_cases = $digital_cases->andWhere('added_by', 'IN', function ($digital_cases) use ($addedBy) {
DB::table('assistants')->select('id')->whereIn('firstname', 'LIKE', $addedBy . '%');
});
}
}
$digital_cases = $digital_cases->get();
我在问题错误之前删除了,但现在一切正常。但我有一个错误:
方法 Illuminate\Database\Query\Builder::andWhere 不存在。
解决方案
只需使用where()
.
默认情况下,Laravel 会假设你想做AND WHERE
. 当您想使用时OR
,您必须具体,即orWhere()
.
推荐阅读
- docker - 尝试运行 portainer 容器的卷规格无效
- objective-c - OSX移动光标事件在网络浏览器中不起作用
- node.js - 如何在 Angular 6 中使用 node.js 模块?
- python - 使用 heap.rotator.Rotator.rotate_map 旋转天空贴图时出现“错误的像素数”类型错误
- javascript - 在渲染函数中定义的return内部调用react映射中的函数
- powershell - 在powershell上运行.ps1文件:IP地址连接
- php - 对 SQL 表中的 x 到 x+n 列求和
- webpack - Webpack Uglify:保留一定的 console.logs
- c# - 将标签居中放入表单
- c# - 如何使用 64 位 MSBuild 构建 ac# 解决方案?