#php #mysql #laravel #laravel-4
#php #mysql #laravel #laravel-4
Вопрос:
В laravel 4 у меня есть много полей базы данных, которые имеют тип даты и datetime . но мне нужно показывать формат даты, такой как dd / mm / yy H: i: s, как и любой формат, а также обрабатывать формирование даты при вставке и обновлении. Есть ли у них какой-либо способ получить работу в одном месте?
Ответ №1:
Да, вы можете сделать это, создав mutator
метод в вашей модели; например, если у вас есть Post
модель и date_of_birth
свойство, и вы хотите установить дату, yyyy/mm/dd H:i:s
но пользователь, вероятно, предоставляет дату в другом формате. В этом случае создайте mutator
метод в Post
модели следующим образом:
public function setDateOfBirthAttribute($value)
{
// value will be the given date by user
$dt = CarbonCarbon::createFromFormat('Y/m/d H:i:s',$value)->toDateString();
$this->attributes['date_of_birth'] = $dt;
}
Чтобы получить доступ к дате, просто создайте accssor
метод, подобный:
public function getDateOfBirthAttribute()
{
return CarbonCarbon::createFromFormat('d-m-Y H:i:s', $this->date_of_birth);
}
Теперь date_of_birth
будет вставлен формат, который вы использовали в mutator
методе, и когда вы покажете эту дату, она будет отображаться в формате, который вы использовали в accessor
методе. Вы также можете проверить мутаторы даты.
Комментарии:
1. у меня есть
created_at
в каждой таблице, так что, если бы я мог обрабатывать в одном месте для всехcreated_at
, это было бы легко. любая идея разместить какой-либо код в подобном global.php2. Эй, я нашел одну идею для обработки, как
@WereWolf - The Alpha
сказано, но я расширяю модели с помощью общей модели, которая реализована вышеуказанными методами. Большое спасибо
Ответ №2:
Обязательным пакетом для дат является Carbon. Взгляните на документацию на GitHub: https://github.com/briannesbitt/Carbon
Комментарии:
1.
Carbon
Laravel
доступно по умолчанию для каждой даты (, являются экземпляром по умолчанию).created_at
deleted-at
Carbon