我有一个数据库种子文件:
class ContactTableSeeder extends Seeder { public function run() { $contacts = array( array( 'first_name' => 'Test', 'last_name' => 'Contact', 'email' => 'test.contact@emai.com', 'telephone_number' => '0111345685', 'address' => 'Address', 'city' => 'City', 'postcode' => 'postcode', 'position' => 'Director', 'account_id' => 1 ) ); foreach ($contacts as $contact) { Contact::create($contact); } } }
当我运行PHP的工匠迁移:刷新--seed它的种子数据库,并创建在联系人表中的相关记录,但它不与任何的种子数组中的信息满山遍野。 我使用其他表完全一样的语法和他们很好地工作,而且我也检查了每场彻底,以确保它们匹配的数据库字段,但无论我做什么也不会正确地播种。
有没有人有什么想法?
我有这个同样的问题,但没有上述解决方案为我工作。 原来,是由于我的模型有一个构造函数! 我删除此之后它工作得很好!
public function __construct()
{
parent::__construct();
}
编辑:在这进一步看完后,我发现这个问题是由于这样的事实,如果你要在您的模型必须接受属性参数,并将其传递给父构造函数。 如果你这样做,那么构造不破DB播种(也可能是其他的东西)。 我希望这样可以节省别人头疼。
public function __construct($attributes = array())
{
parent::__construct($attributes);
}
原来的问题是在我的模型关系的事情。
对于这个问题将来用户:一定要检查所有的功能在你的模型定义hasOne /的hasMany /等关系。 阅读虽然雄辩文档为多。
你有$this->call("ContactTableSeeder")
在DatabaseSeeder类的run()
函数?
如果你有ContactTableSeeder
在它自己的文件,是文件名为ContactTableSeeder.php
到底是什么? 如果不是,它会失败根据加载PSR-0标准。
这是我的第一个想法。
你有没有试过替换以下行:
foreach ($contacts as $contact) {
Contact::create($contact);
}
同
DB::table('contact')->insert($contacts);
假设你的表名是接触 。 而且,要确保你有这样一行
$this->call('ContactTableSeeder');
在DatabaseSeeder类。