无法使用laravel

时间:2015-06-02 12:44:13

标签: php laravel eloquent laravel-5

在尝试将新获取的数据插入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。

为什么会发生这种情况的任何想法?

1 个答案:

答案 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');

}