Laravel - Как использовать строковый тип create_at только в методе - PullRequest
0 голосов
/ 13 января 2019

Я хочу загрузить определенные атрибуты с моделью пользователя:

$user = $user->only(['id', 'user_name', 'created']);

, но созданный_кат получает объект date_time примерно так:

 {
 "id": 1,
 "user_name": "foo",
 "created_at": {
    "date": "2018-12-30 11:34:57.000000",
    "timezone_type": 3,
    "timezone": "...."
 },
}

как я могу получить строковый тип create_at только с методом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Вы можете попробовать это,

'create_at' => now();

или 'crated_at' => Carbon :: now (); 'updated_at' => Carbon :: now ();

0 голосов
/ 13 января 2019

Есть несколько способов добиться этого.

Либо вы можете установить массив $casts[] для вашей модели следующим образом:

protected $casts = [
    'created_at' => 'string'
];

, что означает, что каждый раз, когда вы будете пытаться получить доступ к created_at, он будет возвращать строковое представление.

Или вы также можете определить Accessor , например

public function getCreatedAtAttribute()
{
    return (string) $this->created_at; 
}

Однако я обычно не люблю связываться с атрибутами created_at и updated_at. Поэтому обычно я делаю что-то вроде этого:

public function getFormattedCreatedAtAttribute()
{
    return $this->created_at->toFormattedDateString();
}

и тогда в вашем конкретном случае это будет:

$user = $user->only(['id', 'user_name', 'formatted_created_at']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...