использование числа в конструкторе запросов laravel, где оператор возвращает правильный ответ, но неправильный ответ, когда используется переменная, содержащая число - PullRequest
1 голос
/ 09 июля 2019

Я создаю запрос на основе доступных параметров из представления.Но когда я добавляю в запрос параметры $ request, он все равно возвращает все строки

Это проект laravel 5.6.Когда я использую фактическое число, скажем 1, в моем предложении where я получаю правильный результат, но когда я использую переменную запроса, она возвращает неправильный результат

//This is the query variable

    $all_students = DB::table('student_reports')
    ->leftJoin('students', 'student_reports.student_id', '=', 'students.id')
            ->leftJoin('classes', 'student_reports.class_id', '=', 'classes.id')
     ->when($request->has('class_id'), function($data) use ($request){
            return $data->where('student_reports.class_id', $request->class_id);
     });

//The condition for when returns true and the value for $request->class_id is a number

, но когда я делаю

->where('student_reports.class_id', 2)

Я получаю правильный результат

1 Ответ

0 голосов
/ 10 июля 2019

попробуй, может помочь в этом

$classId= $request->input('class_id');

->when($classId, function($data, $classId) {
        return $data->where('student_reports.class_id', $classId);
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...