laravel 5.6:我收到错误消息“语法错误或访问冲突:1064 您的 SQL 中有错误”

laravel 5.6 : I get a error " Syntax error or access violation: 1064 You have an error in your SQL "

我正在开发应用程序的后端,我使用 laravel 在恢复中,我想 select 这个用户的安全问题

 $User_data = User::where('email', '=', $email)->leftJoin('secutitequestion', function($join) {
            $join->on('users.id', '=', 'secutitequestion.user_id')->pluck('secutitequestion.securite_question1'
            ,'secutitequestion.answer_securite_question1'
            ,'secutitequestion.securite_question2'
            ,'secutitequestion.answer_securite_question2'
            ,'secutitequestion.securite_question3'
            ,'secutitequestion.answer_securite_question3');
        });

我这就是我得到的:

"SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on users.id = secutitequestion.user_id' at line 1 (SQL: select secutitequestion.securite_question1, secutitequestion.answer_securite_question1 on users.id = secutitequestion.user_id)"

您在 leftJoin 内部调用 ->pluck,但您应该在外部调用它。请在下面尝试我的代码

$User_data = User::where('email', '=', $email)
                ->leftJoin('secutitequestion', function($join) {
                        $join->on('users.id', '=', 'secutitequestion.user_id');
                })
                ->select('secutitequestion.securite_question1'
                        ,'secutitequestion.answer_securite_question1'
                        ,'secutitequestion.securite_question2'
                        ,'secutitequestion.answer_securite_question2'
                        ,'secutitequestion.securite_question3'
                        ,'secutitequestion.answer_securite_question3')
                ->get();