在我的播种机中:
$model->create(array(
'name' => 'Test name'
));
在我的模特中:
class Model extends Content {
protected $fillable = array('name');
}
但是当我运行create方法时,只会在名称字段中使用NULL创建记录。
我做错了什么?
答案 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);
}
...
}