【发布时间】:2013-10-10 19:51:58
【问题描述】:
简而言之:播种在 mysql 上运行良好,而在 sqlite 上中断。损坏的代码就像DB::table('user')->insert($users);
种子代码:
<?php
public function run() {
DB::table('user')->delete();
$users = array();
$birth = new DateTime('1980-03-12');
while ($i++ < 50) {
$users[$i]['email'] = "mail$i@example.com";
$users[$i]['password'] = User::password('test');
$users[$i]['enabled'] = 1;
$users[$i]['name'] = 'Name';
$users[$i]['surname'] = 'Surname';
$users[$i]['birthDate'] = $birth;
}
DB::table('user')->insert($users); //<- This line is broken when using sqlite.
}
我的默认数据库驱动程序是 mysql,现在我正尝试切换到 sqlite 用于测试环境。所以,在
app/config/testing/database.php
我有这个配置,在'connections'里面('default'键是'sqlite')
'sqlite' => array(
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
),
现在,如果我发布
php artisan migrate --seed,这工作正常。
如果我发布
php artisan migrate --seed --env=testing,这不起作用
上面的DB::table('user')->insert($users); 失败了,事实上,当我评论说播种工作正常时。
命令行的错误是
ErrorException","message":"array_keys() 期望参数 1 为 数组,给定 null [...] /laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php","line":52
这里有什么问题?
【问题讨论】:
标签: php sqlite laravel laravel-4 seeding