數據填充?
數據填充是一種簡單的將數據添加到數據庫的方式。這在開發的過程中特別有用,你只需要準備開發中所需要的示例數據填充到數據庫中,而且不僅如此,這些數據可以包括你不想要包括的遷移的靜態數據,例如國家/地區,地理編碼表,事件或設置信息等等。
數據填充是必須有 run() 方法的簡單類,并繼承于 CodeIgniterDatabaseSeeder 。在 run() 中,該類可以創建你所需要的任何類型的數據。該類可以創建需要的任何形式的數據。它可以分別通過建立 $this->db
和 $this->forge
訪問數據庫連接。填充文件必須存儲在 application/Database/Seeds 目錄中。文件名和類名必須保持一致。
// application/Database/Seeds/SimpleSeeder.php
class SimpleSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
$data = [
'username' => 'darth',
'email' => 'darth@theempire.com'
];
// Simple Queries
$this->db->query("INSERT INTO users (username, email) VALUES(:username, :email)",
$data
);
// Using Query Builder
$this->db->table('users')->insert($data);
}
}
嵌套數據填充?
你可以使用 call() 方法來運行其他的 seed 類。這允許你更容易使用 seeder,而且同時也將任務分發到各個 seeder 文件當中:
class TestSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
$this->call('UserSeeder');
$this->call('CountrySeeder');
$this->call('JobSeeder');
}
}
你也可以在 call() 方法中使用完全合格的類名,使你的 seeder 在任何地方都可以更好的加載。這對于更多模塊化代碼庫來說非常方便:
public function run()
{
$this->call('UserSeeder');
$this->call('My\Database\Seeds\CountrySeeder');
}