laravel - 如何在 Laravel 查询生成器中使用带有“OR”条件的 Join
问题描述
我想根据两个表检查条件。我在两个表中都有两列。在注册用户时,我将“Org1”或“Org2”或这两个值分配给注册用户,现在当该用户登录时,我希望用户应该只看到分配的“org”的详细信息。如果我已将“Org1”分配为“ab”,那么他必须能够查看“CurrOrg1”为“ab”的预测中的所有记录,如果我在“Org1”和“Org2”中分配了值,那么它必须匹配两列并仅获取匹配的记录,或者如果未分配任何内容,则应加载所有记录。
这是我的控制器代码和查询:
else
{
$loged_user =Auth::user();
$user= DB:: table('users')
->select('id','Org1','Org2','email');
$data1 = DB:: table('predictions')
->join('users',function($join){
$join->on('users.Org1','=','predictions.CurrOrg1');
$join->on('users.Org2','=','predictions.CurrOrg2');
})
->where('users.email',$loged_user->email)
->select('predictions.id','predictions.EmployeeNumber','predictions.Role','predictions.Region','predictions.CurrOrg1','predictions.CurrOrg2','predictions.RiskZone','predictions.Probablity','predictions.Rating','predictions.Feedback','predictions.Gender','predictions.CurrOrg3','predictions.CurrOrg4','predictions.CurrOrg5','predictions.ProfessionalClassification','predictions.Local_Expat','predictions.EmployeeRoleSeniority','predictions.FeedRisklevel','predictions.Feedinfluencers','predictions.Action','predictions.Fname','predictions.Lname','predictions.Avgweekhr');
$data = $data1->get();
}
return datatables()->of($data)
->addColumn('Feedback', function($data)
通过上述查询,我能够获取两列中匹配的记录,但无法获取或条件。任何解决这个问题的建议都会非常有帮助。谢谢
解决方案
推荐阅读
- reactjs - Typescript 3.2.2 const 类型与输出类型不匹配
- c# - 使用 AutoFac 对 WinForms 进行生命周期管理 - 为什么 MyForm 保持“活跃”?
- angular - 如何使用解析器获取模型对象数组?
- c# - 将对象相加以创建 1 个对象,其中所有属性相加
- javascript - 用于验证具有多个字母数字模式的字符串的正则表达式
- java - 使用 Java 反射获取嵌套字段(对象类型字段的字段)的值
- r - 将范围切割成具有相同 binwidth 且观察次数最少的 bin
- sql-server - 选择在给定日期拥有特定属性的所有个人
- embedded - 如何修复 Keil V5 中的“多重定义”
- inno-setup - 如何使用 Inno Setup Install / DswinDs 系统处理 DotNet 先决条件?