在尝试将新获取的数据插入Laravel时,我无法在数据库中插入2个字段,即类型和提供者。
这是我的代码:
$user = User::create([
'name' => $userData->name,
'username' => $userData->name,
'email' => $userData->email,
'password' => 'asdffdas',
'type' => 'standard',
'provider' => $userData->id,
'active' => 1
]);
如果我回显$userData->id
,我设法收到一个有效的整数,但是在插入后,类型总是第一个enum
,而提供者总是为0。
为什么会发生这种情况的任何想法?
答案 0 :(得分:3)
您必须确保字段位于$ fillable = [];模型的参数。
质量分配
创建新模型时,将属性数组传递给模型构造函数。然后通过质量分配将这些属性分配给模型。这很方便;然而,当盲目地将用户输入传递到模型中时,可能是严重的安全问题。如果用户输入被盲目地传递到模型中,则用户可以自由地修改任何和所有模型的属性。因此,默认情况下,所有Eloquent模型都可以防止质量分配。
To get started, set the fillable or guarded properties on your model.
Defining Fillable Attributes On A Model
The fillable property specifies which attributes should be mass-assignable. This can be set at the class or instance level.
class User extends Eloquent {
protected $fillable = array('first_name', 'last_name', 'email');
}