laravel - Laravel播种未填写字段

标签 laravel laravel-4 migrate seeding

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

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 artisan migrate:refresh --seed时,它将种子数据库并在contacts表中创建相关记录,不同之处在于它不会用种子数组中的任何信息填充字段。我对其他表使用了完全相同的语法,并且它们工作正常,并且我还彻底检查了每个字段,以确保它们与数据库字段匹配,但是无论我做什么,都无法正确播种。

有人有什么想法吗?

最佳答案

我遇到了同样的问题,但以上解决方案均不适合我。原来是由于我的模型中具有构造函数!我删除此文件后,效果很好!

public function __construct()
{
    parent::__construct();
}

编辑:
在对此进行了进一步的阅读之后,我发现问题是由于这样的事实:如果要在模型中包括构造函数,则必须接受attribute参数并将其传递给父级。如果执行此操作,则构造函数不会破坏数据库种子(可能还有其他事情)。我希望这可以使其他人免于头痛。
public function __construct($attributes = array())
{
    parent::__construct($attributes);
}

关于laravel - Laravel播种未填写字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497481/

相关文章:

Laravel: "remember_token"DB 表中的 "users"是什么?

php - 拉维尔 4.* : Get all cookies

php - Laravel 查询不适用于 where 条件

php - Laravel php artisan 迁移不工作

php - Laravel数据库迁移错误

javascript - Ajax 导致 500 内部服务器错误

Laravel 5.2 php 工匠路线不起作用

Laravel 使用 Composer 删除包

mysql - 在 MySql 中查找所选项目数量的最快方法?

python - "no such table"异常