2016-07-28 6 views
1

У меня есть таблица в моей базе данных, которая имеет 3 столбца типа date, хранящихся в формате Y-m-d. Мне нужно, чтобы даты отображались в моих представлениях как d/m/Y. Модель для этой таблицы JobCard.php, поэтому каждый раз, когда я получить экземпляр JobCard я делаю это:Где поставить этот код в laravel?

$JobCard -> DateReqLatest = Carbon::createFromFormat('Y-m-d', $JobCard -> DateReqLatest)->format('d/m/Y'); 
$JobCard -> DateIssued = Carbon::createFromFormat('Y-m-d', $JobCard -> DateIssued)->format('d/m/Y'); 
$JobCard -> DateDespatch = Carbon::createFromFormat('Y-m-d', $JobCard -> DateDespatch)->format('d/m/Y'); 

Я затем передать $ JobCard на мой взгляд. Это работает, но существует несколько представлений, использующих эту модель, и эти представления используют разные контроллеры, поэтому вместо копирования этого кода в каждую функцию контроллера я хочу, чтобы формат даты был автоматически преобразован, когда я передаю экземпляр JobCard в представление.

Пользователь также будет отправлять даты в форме в формате d/m/Y, который мне нужно скрывать в Y-m-d, который будет храниться в моей базе данных.

Где лучше всего написать мой код для этого?

ответ

2

Вы можете создать acessor, который будет вызываться каждый раз, когда вы получаете доступ к этой недвижимости:

public function getDateReqLatestAttribute($value) 
{ 
    return Carbon::createFromFormat('Y-m-d', $value)->format('d/m/Y'); 
} 

Documentation

+1

Отлично, и мутаторы для преобразования обратно! благодаря –

1

Посмотрите на Laravel accessors, это может быть то, что вы хотите, если я понял.