Php Laravel db没有播种,因为扩展了Eloquent的模型有一个构造函数。。。?
因此,我有一个简单的种子程序,它只有Php Laravel db没有播种,因为扩展了Eloquent的模型有一个构造函数。。。?,php,laravel,laravel-4,Php,Laravel,Laravel 4,因此,我有一个简单的种子程序,它只有User::create(array(…),但它不会种子,因为我的基本模型有一个构造函数: BaseModel extends Eloquent { protected $local_name; public __construct() { parent::__construct(); $this->locale_name = App::getLocale(); } 当我将字符串作为字段时,扩展基本模型的任何模型(例如User)都不会正确地
User::create(array(…)
,但它不会种子,因为我的基本模型有一个构造函数:
BaseModel extends Eloquent {
protected $local_name;
public __construct()
{
parent::__construct();
$this->locale_name = App::getLocale();
}
当我将字符串作为字段时,扩展基本模型的任何模型(例如User
)都不会正确地进行种子设定。比如说:
User::create(数组('id'=>1,'foo'=>bar')代码>
foo
字段将为NULL
,而id
字段将变为精细并存储整数。它发生在任何字符串上,只有我给它的字符串
有人知道怎么了吗?构造函数中的内容无关紧要,同样的事情也会发生。构造函数必须将$attributes
数组设置为默认值:
class BaseModel extends Eloquent {
public function __construct($attributes = array())
{
parent::__construct($attributes);
// your code
}
}
很难说没有看到您的用户模型,或者至少创建()。此外,“播种”在拉威尔是一个非常具体的概念。您是在谈论创建一个表/db还是创建一个新模型?用户只是开箱即用的用户。是的,我指的是播种一个数据库表。PHP新手,我应该总是在每个构造函数中设置$attributes
,还是只为Eloquent?您是在扩展Eloquent,这就是为什么,您还实现了to model(以及与之相关的契约-illumb\database\Eloquent\model-)。这就是为什么,你必须在你的cunstruct方法中有它。