Laravel播种大规模任务,看不出我哪里出错了

时间:2014-04-07 09:46:26

标签: laravel eloquent mass-assignment

在我的播种机中:

    $model->create(array(
        'name' => 'Test name'
    ));

在我的模特中:

class Model extends Content {
        protected $fillable = array('name');
}

但是当我运行create方法时,只会在名称字段中使用NULL创建记录。

我做错了什么?

4 个答案:

答案 0 :(得分:0)

在你的种子中,你需要“无人”的雄辩。

https://github.com/laravel/framework/issues/736#issuecomment-15597996

答案 1 :(得分:0)

请尝试在您的模型上使用此功能:

class Model extends Content {
    protected $fillable = ['name'];
}

删除不必要的代码。

或者在播种机上尝试:

Model::create(['name' => 'foobar']);

或者在播种机上添加:

Eloquent::unguard();

答案 2 :(得分:0)

您正在指定可填写和受保护的属性。 你只需要其中一个!

答案 3 :(得分:0)

找到解决方案。

模型正在扩展内容,扩展了Eloquent。

我覆盖了Content中的构造函数,而没有将$ attributes数组传递给Eloquent构造函数。我需要改变这个:

class Content extends Eloquent {
    public function __construct() {
        ...
        parent::__construct();
    }
    ...
}

对此:

class Content extends Eloquent {
public function __construct($attributes = array()) {
        ...
        parent::__construct($attributes);
}
    ...
}