Застрял в Laravel, пытаясь сохранить данные в базе данных - PullRequest
0 голосов
/ 20 сентября 2018

Я делаю эту функцию, чтобы вызвать ее позже, но в базе данных сохраняются только first_name, password и email.Существует null для user_create_id и user_update_id.

protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'password' => Hash::make($data['password']),
        'email' => $data['email'],
        'user_create_id'=> '0',
        'user_update_id'=> '0',  ]);
}

Есть ли способ сохранить user_create_id и user_update_id?

Ответы [ 4 ]

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

Не видя вашей пользовательской модели, вам, вероятно, нужно обновить свойство fillable, чтобы оно включало эти атрибуты, например:

protected $fillable = [
    'firstname',
    'password',
    'email',
    'user_create_id',
    'user_update_id'
];

Если вы не задали вместо этого защищенное свойство, в этом случае вы быпросто хочу убедиться, что ни один из этих атрибутов не находится в охраняемом свойстве, так как он действует как черный список, где заполняемый является временным списком для массового назначения атрибутов.Работоспособная защищенная версия будет выглядеть так:

protected $guarded = [];
0 голосов
/ 20 сентября 2018

https://laravel.com/docs/5.7/eloquent#mass-assignment

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

Убедитесь, чтоuser_create_id и user_update_id находятся в определении $fillable вашего файла app/User.php.

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

Убедитесь, что эти свойства заполняются.Также убедитесь, что тип столбца поддерживает строки, так как вы используете '0', которая является строкой, а не целым числом:

Заполняемый:

// User model

protected $fillable = [
    'first_name',
    'password',
    'email',
    'user_create_id',
    'user_update_id'
];
0 голосов
/ 20 сентября 2018

Убедитесь, что у вас есть

protected $fillable = [
    ....
    'user_create_id'=> '0',
    'user_update_id',
];

Внутри User класс

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