Как установить формат данных в проекте laravel - PullRequest
0 голосов
/ 02 мая 2020

Есть способ изменить формат даты в столбце db?

В моем случае я добавил только столбец "день рождения" для пользователя по умолчанию из стандартного нового проекта - аут, но отображение данных я, естественно, получить формат данных базы данных, которые я хочу изменить на "dmY".

Модель пользователя:

class User extends Authenticatable
{
    use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'firstname','lastname', 'email', 'password',
];


/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

/**
 * The attributes that should be cast to native types.
 *
 * @var array
 */
protected $casts = [
    'email_verified_at' => 'datetime',
];

protected $dates = [
    'birthday',
];

}

dashboard.blade:

<article class="image-box style2 box innerstyle personal-details">


                                        <!--<a href="#" class="button btn-mini pull-right edit-profile-btn">{{__('home.ProfileEdit')}}</a>-->
                                        <h2 class="box-title fullname">{{ Auth::user()->lastname }}{{ Auth::user()->firstname }}</h2>
                                        <dl class="term-description">                                                
                                            <dt>{{__('home.FirstName')}}:</dt><dd>{{ Auth::user()->firstname }}</dd>
                                            <dt>{{__('home.LastName')}}:</dt><dd>{{ Auth::user()->lastname }}</dd>
                                            <dt>{{__('home.Birthday')}}:</dt><dd>{{ Auth::user()->birthday ?? '' }}</dd>
                                            <dt>{{__('home.Gender')}}:</dt><dd>{{ Auth::user()->gender }}</dd>
                                            <dt>{{__('home.EmailAddress')}}:</dt><dd>{{ Auth::user()->email }}</dd>
                                            <!--<dt>E-mail:</dt><dd>{{ Auth::user()->created_at }}</dd>-->
                                        </dl>

                                </article>

Существует способ изменить формат без использования

<dt>{{__('home.Birthday')}}:</dt><dd>{{ Auth::user()->birthday->format('d.m.Y') }}

в blade.view?

Ответы [ 3 ]

0 голосов
/ 02 мая 2020

Hedam находится на правильном пути, но для определения метода доступа имя функции должно иметь вид getFieldAttribute. Пример:

public function getBirthdayAttribute($value)
{
    return $value->format('d.m.Y');
}

Работает ли это?

Дополнительные сведения об определении средства доступа Eloquent: https://laravel.com/docs/7.x/eloquent-mutators#defining -an-accessor

0 голосов
/ 02 мая 2020

Я закрываю вопрос, публикуя код, который я использовал и который, кажется, работает.

в моей модели:

public function getBirthdayAttribute($value)
{

    return Carbon::parse($value)->format('d-m-Y');

}
0 голосов
/ 02 мая 2020

Вы можете определить мутатор для атрибута birthday в модели.

public function getBirthdayAttribute($value)
{
    return $value->format('d.m.Y');
}

Теперь, когда вы вызываете $user->birthday, он всегда будет возвращать строку в формате d.m.Y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...