簡而言之:播種工作正常與MySQL,而與sqlite休息。斷碼就像是DB::table('user')->insert($users);
Laravel4在測試環境中播種失敗使用SQLite,但成功使用mysql
種子代碼:
<?php
public function run() {
DB::table('user')->delete();
$users = array();
$birth = new DateTime('1980-03-12');
while ($i++ < 50) {
$users[$i]['email'] = "[email protected]";
$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的,我現在想切換到源碼的測試環境。所以,在
應用程序/配置/測試/ database.php中
我有這樣的配置,裏面 '連接'( '默認' 關鍵是 '源碼')
'sqlite' => array(
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
),
現在,如果我發出
php artisan migrate --seed,這工作正常。
如果我發出
PHP工匠遷移--seed --env =測試,這是行不通的
以上DB::table('user')->insert($users);
失敗,事實上當我發表評論播種工作正常。 在命令行的錯誤是
ErrorException 「 」消息「:」 array_keys()預計參數1是 陣列,空給定[...] /laravel /框架/ SRC /照亮/數據庫?/Query/Grammars/SQLiteGrammar.php","line":52
什麼是錯在這裏
如果有人有興趣我提交pull請求該https://github.com/laravel/framework/pull/2405 –