У меня есть запрос, который отлично работает в PMA, и я пытаюсь преобразовать его в Eloquent, но мне что-то не хватает. Здесь SQL-запрос:laravel 5.1 eloquent query
SELECT t1.* FROM ppr__child_absence t1
LEFT JOIN ppr__children t3 ON t3.idcode=t1.child_idcode
WHERE t1.id = (SELECT t2.id FROM ppr__child_absence t2
WHERE t2.child_idcode = t1.child_idcode
ORDER BY t2.id DESC LIMIT 1)
AND t3.deleted_at IS NULL
AND $input BETWEEN start AND stop;
и ГЭК мой красноречивый запрос:
$input = Request::all();
$pprs =
DB::table('ppr__child_absence')
->join('ppr__children', function($join) {
$join->on('ppr__children.idcode', '=', 'ppr_children_absence.child_idcode')
->where('ppr__child_absence.child_idcode', '=', DB::raw('SELECT t2.id FROM ppr__child_absence t2
WHERE t2.child_idcode = ppr__child_absence.child_idcode
ORDER BY t2.id DESC LIMIT 1'));})
->whereNull('ppr__children.deleted_at')
->whereBetween($input, array('ppr_children_absence.start','ppr_children_absence.stop'))->get();
Я постоянно получаю ошибку: ErrorException в Grammar.php линии 58: strtolower() ожидает параметр 1 для строки, массив.
Может ли кто-нибудь здесь привести меня в правильном направлении? В основном пользователь имеет 1 ввод даты с datepicker и кнопку отправки, чтобы получить результат в соответствии с выбранной датой.
не работает запрос здесь с ошибкой, но никаких результатов
$input = Request::all();
$pprs = DB::table('ppr__child_absence')
->select('ppr__child_absence.*')
->join('ppr__children', function($join) {
$join->on('ppr__children.idcode', '=', 'ppr__child_absence.child_idcode')
->where('ppr__child_absence.id', '=', DB::raw('SELECT t2.id FROM ppr__child_absence t2
WHERE t2.child_idcode = ppr__child_absence.child_idcode
ORDER BY t2.id DESC LIMIT 1'));})
->whereNull('ppr__children.deleted_at')
->where('ppr__child_absence.start', '<', $input['ppr_day'])
->where('ppr__child_absence.stop', '>', $input['ppr_day'])->get();
спасибо! Я пропустил это, но есть еще кое-что. Я получаю ошибку SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «2015-09-26» в разделе «where». он пытается найти столбец и не признает, что это дата. Даже когда оно объявлено в файле модели. Имя поля поля ввода $ будет «ppr_day». – Merrant
также добавил строку -> select ('ppr__child_absence. *') После DB :: table ('ppr__child_absence') – Merrant