前例:
数日前、お客様からメンバー Q&A システムを構築したいとの依頼があったので、そのプロセスに従いました。データベースのデータを呼び出す段階になったとき、それらを 1 つずつ追加するのは少し面倒だと感じました。バカ〜
解決プロセス:
後でマニュアルを確認したり、海外のブログの事例を調べたりして、良い方法を思いつきました~~~
私の使用記録はスクリーンショットです:
後半まで時間が表示されるまでは、Seederが正常に実行されていることを意味します~
以下は公式プロセスを使用したSeederの作成です
php think seed:create UserSeeder
UserSeeder
ファイルを作成します。作成が成功すると、database/seeds
ディレクトリにそのファイルが表示されます。
database|-seeds |-|-UserSeeder.php
<?phpuse think\migration\Seeder;class UserSeeder extends Seeder { /** * Run Method. * * Write your database seeder using this method. * * More information on writing seeders is available here: * http://docs.phinx.org/en/latest/seeding.html */ public function run() { } }
UserSeeder
文件,创建成功之后你可以在 database/seeds
目录下面看到:<?phpuse think\migration\Seeder;class UserSeeder extends Seeder { /** * Run Method. * * Write your database seeder using this method. * * More information on writing seeders is available here: * http://docs.phinx.org/en/latest/seeding.html */ public function run() { $rows = []; for ($i = 0; $i < 100; $i++) { $rows[] = [ 'nickname' => mt_rand(10000, 99999), 'email' => mt_rand(10000, 99999).'@qq.com', 'password' => md5('123456'), ]; } $this->table('users')->insert($rows)->save(); } }
其内容如下:
php think seed:run
代码非常的简单,默认的给出了一个 run
方法,现在我们都知道 seeder 文件是用来产生模拟数据的,而产生模拟数据的代码写在 run
方法中就可以了。
在 run
方法中,我们可以随意填写了可以填充数据库的任意代码。这里我就抛砖引玉啦:
要求:
给数据表 Users
模拟生成100条数据。表结构如下:
字段 | 说明 |
---|---|
nickname |
呢称 |
<a href="http://www.php.cn/code/114.html" target="_blank">email</a> |
邮箱 |
password |
密码 |
收到需求后,我可以这样写:
rrreee注意:一定要调用
save()
方法,否则不会保存的。
首先呢,我生成了100条数据,然后调用 $this->table('users')->insert($rows)->save();
将生成的数据插入到数据库的 Users
表中。是不是很简单? ^ - ^.
Seeder 文件定义好了之后,还必须得执行一下数据才能插入到数据库中,我们可以这样执行:
rrreee执行成功提示: All Done. Took 0.0552s
コードは非常に単純で、run
メソッドがデフォルトで指定されています。これで、シーダー ファイルがシミュレーション データとコードの生成に使用されることがわかりました。シミュレーション データを生成するためのコードは run
メソッドに記述されています。
Seeder の run メソッド
run
メソッドでは、データベースに入力できる任意のコードを入力できます。ここでいくつかのアイデアを紹介します:
要件:
Users
を与えます。テーブル構造は次のとおりです:
Field | Description | ニックネーム |
---|---|
<a href="http://www.php%20.cn%20/code/114.html" target="_blank">メール</a> |
メール |
パスワード code> |
パスワード |
rrreee
注: 必ず確認してくださいsave()
メソッドを呼び出すと、保存されません。
🎜Seeder を実行する🎜🎜 Seeder ファイルを定義したら、データをデータベースに挿入する前にそれを実行する必要があります。次のように実行できます:🎜rrreee🎜 実行成功のプロンプト: All Done。 0.0552秒かかりました
。ご覧いただけます: 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜php think seed:run 🎜以上がThinkphp5 はコンポーザーでシーダーを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。