Laravel播种不填写字段

Gar*_*ine 6 migrate seeding laravel laravel-4

我有一个数据库种子文件:

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行php artisan migrate时:refresh --seed它为数据库播种并在contacts表中创建相关记录,除了它没有用种子数组中的任何信息填充字段.我对其他表使用完全相同的语法并且它们工作正常,我还彻底检查了每个字段以确保它们与数据库字段匹配,但无论我做什么它都不会正确播种.

有没有人有任何想法?

naw*_*103 12

我有同样的问题,但上述解决方案都不适合我.结果是由于我的模型中有一个构造函数!删除后,它工作正常!

public function __construct()
{
    parent::__construct();
}
Run Code Online (Sandbox Code Playgroud)

编辑:在进一步阅读之后,我发现问题是由于如果要在模型中包含构造函数,必须接受attributes参数并将其传递给父级.如果你这样做,那么构造函数不会破坏数据库种子(可能还有其他东西).我希望这能让别人头疼.

public function __construct($attributes = array())
{
    parent::__construct($attributes);
}
Run Code Online (Sandbox Code Playgroud)


Gar*_*ine 1

事实证明,问题与我的模型中的关系有关。

对于此问题的未来访问者:请确保检查模型中定义 hasOne/hasMany/etc 关系的所有函数。阅读Eloquent 文档了解更多信息。