Модельная фабрика возвращает возраст, основанный на дате рождения, вот так - PullRequest
0 голосов
/ 14 февраля 2019

enter image description here

Я хочу написать функцию, которая ссылается на эту запись о дате рождения ..

Пока это то, что я сделал

но я получаю в терминале enter image description here

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Учитывая, что age является вычисляемым полем и будет меняться каждый день, это не должно быть данными, хранящимися в вашей базе данных, и, следовательно, не должно быть на вашей фабрике.

Я бы удалилполе из базы данных и фабрики и добавьте аксессор к вашей модели:

// Make sure birthdate is cast to a Carbon date.
protected $dates = [
    'birthdate',
];

// Define the "age" property accessor.
public function getAgeAttribute()
{
    return now()->diffInYears($this->birthdate);
}

С аксессором вы можете получить доступ к полю как свойству:

$ci = App\CriminalInfo::find(1);
dd($ci->age);

Вы также можете добавить его в свойство $appends , если хотите увидеть его в выводе массива / json модели.

0 голосов
/ 14 февраля 2019

Мы можем использовать код ниже.

$birthDate = '31-07-1983';
$data = [
    'age'=> call_user_func(function() use( $birthDate){
        return (date('Y') - date('Y', strtotime($birthDate)));
    })
];
print_r($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...