0
cakephp 3でデータベースをシードするときに、外部キーのチェックを無効にし、テーブルを切り捨て、データを挿入し、外部キーのチェックを有効にする方がいいですか?現在動作していない現在のコードcakephpでシードする前にテーブルを切り捨てる
<?php
use Migrations\AbstractSeed;
use Cake\Datasource\ConnectionManager;
/**
* Categories seed.
*/
class CategoriesSeed extends AbstractSeed
{
public function run()
{
$connection = ConnectionManager::get('default');
$connection->execute('SET FOREIGN_KEY_CHECKS = 0');
$connection->execute('TRUNCATE table categories');
$data = [
['id' => 1, 'name' => 'Audio, video & photo', 'parent' => 0, 'alias' => 'audio-video-and-photo', 'image' => ''],
['id' => 2, 'name' => 'Music players', 'parent' => 1, 'alias' => 'music-players', 'image' => ''],
['id' => 3, 'name' => 'Musical instruments', 'parent' => 1, 'alias' => 'musical-instruments', 'image' => ''],
];
$table = $this->table('categories');
$table->insert($data)->save();
$connection->execute('SET FOREIGN_KEY_CHECKS = 1');
}
}
ConnectionManagerを使用する必要はありませんか?これは、たとえばAbstractSeedを使用するだけで可能ですか?
$table = $this->table('categories');
$table->query('SET FOREIGN_KEY_CHECKS = 0');
$table->truncate();
この問題に対処する方法は?
ナイス!ご協力ありがとうございました! –