W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
數(shù)據(jù)填充是一種簡(jiǎn)單的將數(shù)據(jù)添加到數(shù)據(jù)庫(kù)的方式。這在開發(fā)的過程中特別有用,你只需要準(zhǔn)備開發(fā)中所需要的示例數(shù)據(jù)填充到數(shù)據(jù)庫(kù)中,而且不僅如此,這些數(shù)據(jù)可以包括你不想要包括的遷移的靜態(tài)數(shù)據(jù),例如國(guó)家/地區(qū),地理編碼表,事件或設(shè)置信息等等。
數(shù)據(jù)填充是必須有 run() 方法的簡(jiǎn)單類,并繼承于 CodeIgniterDatabaseSeeder 。在 run() 中,該類可以創(chuàng)建你所需要的任何類型的數(shù)據(jù)。該類可以創(chuàng)建需要的任何形式的數(shù)據(jù)。它可以分別通過建立 $this->db
和 $this->forge
訪問數(shù)據(jù)庫(kù)連接。填充文件必須存儲(chǔ)在 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() 方法來運(yùn)行其他的 seed 類。這允許你更容易使用 seeder,而且同時(shí)也將任務(wù)分發(fā)到各個(gè) seeder 文件當(dāng)中:
class TestSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
$this->call('UserSeeder');
$this->call('CountrySeeder');
$this->call('JobSeeder');
}
}
你也可以在 call() 方法中使用完全合格的類名,使你的 seeder 在任何地方都可以更好的加載。這對(duì)于更多模塊化代碼庫(kù)來說非常方便:
public function run()
{
$this->call('UserSeeder');
$this->call('My\Database\Seeds\CountrySeeder');
}
你可以通過數(shù)據(jù)庫(kù)配置類獲取主 seeder:
$seeder = \Config\Database::seeder();
$seeder->call('TestSeeder');
如果不想創(chuàng)建專用控制器,也可以從命令行填充數(shù)據(jù),作為 Migrations CLI 工具的一部分:
> php index.php migrations seed TestSeeder
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: