Laravel。数据库播种器多行不起作用

时间:2016-12-12 18:13:03

标签: php laravel laravel-5 laravel-5.2

我想使用播种机为多行种子数据库:

public function run()   {
    DB::table('users')->insert([

        [
            'name' => 'Guest',
            'surname' => 'Guest',
            'email' => 'guest@domain.com',
            'phone' => '+777',
            'password' => bcrypt('password'),
            'is_admin' => false,
        ],
        [
            'name' => 'Alexander',
            'surname' => 'Jones',
            'email' => 'asd@asd.com',
            'phone' => '+12321321312',
            'password' => bcrypt('password'),
            'is_admin' => true,
        ]

    ]);

然而,当我运行php artisan db:seed时,它仅在第一行播种。如何为多行制作播种机? L5.2文档缺少这种信息。请帮忙!

2 个答案:

答案 0 :(得分:2)

Try this once..

$mul_rows= [
    [ 'name' => 'Guest',
            'surname' => 'Guest',
            'email' => 'guest@domain.com',
            'phone' => '+777',
            'password' => bcrypt('password'),
            'is_admin' => false,],
    [  'name' => 'Alexander',
            'surname' => 'Jones',
            'email' => 'asd@asd.com',
            'phone' => '+12321321312',
            'password' => bcrypt('password'),
            'is_admin' => true,]
];

foreach ($mul_rows as $rows) {
   $insert= DB::table('users')->insert($mul_rows);
if($insert){
//success message here
}else{
//Failure message here
}
}

答案 1 :(得分:1)

通过聊天,我们发现实际上正在插入这些行,但是当通过w / e工具调用DB时,OP正在使用的只是一次返​​回1个结果,这使得它显示出来。

对于使用Sequel Pro(https://sequelpro.com/)的其他用户,我建议查看表格视图而不是运行查询,因为这可能会产生误导。不完全确定,但我们认为它在查询结尾添加了1的限制。