我有数组数据
publish
我保存
$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']),
]);
存储为null到数据库
我已经检查$data['username']
结果不是$data['username']
答案 0 :(得分:1)
将username
字段添加到模型上的$fillable
数组中。
您需要这样做,因为您进行了批量分配(将数组传递给create函数),默认情况下,Eloquent将保护未列出质量赋值的列。
答案 1 :(得分:0)
检查<input type="text" name="username">
还可以查看您的模型$fillable = ['username']
添加username
和其他字段。
答案 2 :(得分:0)
快速提醒一下,你可以定义protected $ guarded = [](空数组),而不必在$ guarded中添加指定的列。但大多数情况下,你想要保留一些属性。
答案 3 :(得分:0)
User模型上的$ fillable属性不包含'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 = []。