Как использовать мутаторы даты или углерода в SQL-запросах
Если у меня есть sql-запрос, возвращаемый из DB:: Выберите, как я могу вернуть объекты Carbon для моих атрибутов созданных_кат?
Я хотел бы иметь возможность сделать что-то вроде:
$result = DB::select(DB::raw("SELECT X,Y,Z,tabletwo.created_at FROM tableone LEFT JOIN tabletwo ON tableone.X = tabletwo.foreignX"));
foreach($result as $row)
{
$row->created_at->timezone(Auth::user()->timezone);
}
Я уже пытался добавить поля в метод getDates на моих моделях, но он не делает ничего другого - я предполагаю, что это пользовательский запрос sql и не возвращает объект.
1 ответ
Решение
DB::select
возвращает массив stdObjects
, не красноречивый Models
, так что вы не можете использовать функции Eloquent.
Если предположить, created_at
поле даты / времени MySQL, вы можете сделать это:
$timestamp = new Carbon\Carbon($row->created_at);
$timestamp->timezone(Auth::user()->timezone);