Мутатор Ларавел - PullRequest
       9

Мутатор Ларавел

0 голосов
/ 27 августа 2018

Я хочу преобразовать поля даты, которые у меня есть в базе данных mi, чтобы показать их в другом формате. В базе данных поля даты хранятся в формате 'y-m-d', но я хочу показать их в формате 'd-m-y'. Я нашел признак (torzer mutator), и это то, что я хочу, но мне нужно знать, как это сделать, не указав столбец, в который я хочу выполнить преобразование, - один из способов автоматического определения столбцов с полями даты. .

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

<?php

use Torzer\Common\Traits\MapDateTimeMutator;

class MyClass extends Model {

use MapDateTimeMutator;

protected $mapDateTimeMutator = [
    'start_date' => ['from' => 'd/m/Y', 'to' => 'Y-m-d'],
    'finish_date' => ['from' => 'd/m/Y', 'to' => 'Y-m-d']
];

protected $dates = [
    'approved_at', 'start_date', 'finish_date'
];

...

Так работает мутатор Torzer.

1 Ответ

0 голосов
/ 27 августа 2018

Углерод - хорошая библиотека для этого.

Также я не знаю, как вы настраиваете свою модель, но мой пример основан на документации laravel

Use Carbon\Carbon;

//where 'Date' = your attribute name
//so after you do something like a $m = model::find() and reference
//$m->date it will mutate it
public function getDateAttribute($value) {
    return Carbon::parse($value)->format('d-m-Y');
}

Карбоновые документы: https://carbon.nesbot.com/docs/

...