Измените автоматически формат полей даты (Laravel) - PullRequest
0 голосов
/ 10 сентября 2018

Я ищу Mutator DateTime, который меняет формат дат, Я работаю с Oracle DB , допустимый формат (ДД / ММ / ГГГГ) и тип ввода "дата" сохраняет даты в формате (ГГГГ, ММ, ДД).

Я нашел функцию $ date и признак Torzer, но я должен указать поля, в которые я хочу преобразовать формат.

Есть ли какая-либо черта или функция, которая обнаруживает все поля даты и автоматически конвертирует их в формат (ДД / ММ / ГГГГ)? это без указания поля.

в настоящее время я использую защищенную дату в моей модели:

protected $dates = [ 'fecha_nac', 'fecha_nac1', 'fecha_nac2', ];

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

По умолчанию laravel использует формат даты 'Y-m-d H: i: s', если вы хотите использовать другой формат, вы можете настроить его в своей модели следующим образом.

    protected $dateFormat = 'your date formate';

в вашем случае это будет.

    protected $dateFormat = 'd-m-Y';
0 голосов
/ 10 сентября 2018

Вы можете переопределить метод getDates для HasAttributes признака.

/**
 * Get the attributes that should be converted to dates.
 *
 * @return array
 */
public function getDates()
{
    $defaults = [static::CREATED_AT, static::UPDATED_AT];

    return $this->usesTimestamps()
                ? array_unique(array_merge($this->dates, $defaults))
                : $this->dates;
}

На вашей модели:

public function getDates()
{
    $dates = parent::getDates();

    // add your dynamic logic here

    return $dates;
}

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

...