首页 > 解决方案 > 如何在 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)

通过上述查询,我​​能够获取两列中匹配的记录,但无法获取或条件。任何解决这个问题的建议都会非常有帮助。谢谢

标签: laraveleloquentlaravel-8laravel-query-builder

解决方案


推荐阅读