Массив не нулевой, но в базе данных, сохраненной как NULL (Laravel) - PullRequest
0 голосов
/ 27 мая 2018

У меня есть данные массива

 $data = [
  "_token" =>   "ERtVJwSXqfcyPJ452patZVmNnH75BZLDroKR1OaA"  
  "name" => "Ardy Febriansyah" 
  "username" => "ardyfeb2402"
  "email" => "ardyfeb02@gmail.c" 
  "password" => "ardyfeb2402"
  "password_confirm" => "ardyfeb2402"
 ]

И я сохраняю

User::create([
        'name' => $data['name'],
        'username' => $data['username'],
        'email' => $data['email'],
        'password' =>  Hash::make($data['password']),
    ]);

Но $data['username'] хранится как ноль в базе данных

Я уже проверил $data['username']результат не ardyfeb2402

Ответы [ 4 ]

0 голосов
/ 28 мая 2018

Ваше свойство $ fillable в модели User не содержит «username», и поэтому я не буду добавляться при использовании статического метода. В этом случае User :: create ([]);

Если вы хотите сохранить модель как есть, тогда вы можете

$user = new User;
$user->name = $data['name'];
$user->username = $data['username'];
$user->save();

просто обновить защищенное $ fillable = ['name', 'email', 'username'];

или только для локальной разработки вы можете установить для свойства $ guarded значение null в вашей пользовательской модели.

protected $guarded = [];

$ guard и $ guarded - это не одно и то же.не следует использовать $ guarded = [] в производстве.

0 голосов
/ 27 мая 2018

Проверьте свои <input type="text" name="username">

, а также взгляните на свою модель $fillable = ['username'] add username и другие поля.

0 голосов
/ 28 мая 2018

Просто быстрое напоминание, вы можете просто определить защищенный $ guarded = [] (пустой массив), и вам не нужно добавлять указанные столбцы в $ guarded.Но в большинстве случаев вы хотите сохранить некоторые атрибуты в безопасности.

0 голосов
/ 27 мая 2018

Добавьте поле username в массив $fillable на модели.

Это необходимо, потому что вы выполняете массовое назначение (передавая массив в функцию create), и по умолчанию Eloquent защищает столбцы.которые не перечислены для массового назначения.

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