Я пытаюсь получить значения базы данных для заданного диапазона дат. Проблема в том, что я также пытаюсь достичь, чтобы получить недостающие значения. Если у меня есть значения для 1-й день и 3, и я прошу значений для дней 1-5, я хочу, чтобы получить что-то вроде этого:Laravel: Дата между нулевыми значениями
1 -> Значение
2 -> NULL/0
3 -> Значение
4 -> NULL/0
5 -> NULL/0
Хорошо, я знаю, как решить эту проблему, используя только MySQL и эта временная таблица в LEFT JOIN :
(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
К сожалению, я не уверен, как включить это в «Красноречивый ОРМ». В настоящее время я имею в виду что-то вроде этого:
$weekclockings = $shift->clockings()->leftJoin(function($query)
{
$query->raw($aboveQuery);
}, "v.selected_date", ">", "timeclocked.time_in")
, но это не работает, и просто дает мне «ErrorException в Grammar.php строке 33: Объект класса закрытия не может быть преобразован в строку».
Итак, возможно, это даже не лучший способ сделать это. Кто-нибудь знает, как это достичь?
Я не получаю часть, где вы смешиваете (порядок?) дневное значение с датой. Как можно отличить то, что должно быть установлено в диапазоне, когда null разрешен? Я имею в виду, если вы знаете, сколько дней вы хотите просто использовать просто, где и заказать его ... – Kyslik