Thinkphp5 はコンポーザーでシーダーを使用します

PHP中文网
リリース: 2023-03-20 10:46:01
オリジナル
1982 人が閲覧しました

前例:

数日前、お客様からメンバー Q&A システムを構築したいとの依頼があったので、そのプロセスに従いました。データベースのデータを呼び出す段階になったとき、それらを 1 つずつ追加するのは少し面倒だと感じました。バカ〜

解決プロセス:

後でマニュアルを確認したり、海外のブログの事例を調べたりして、良い方法を思いつきました~~~

私の使用記録はスクリーンショットです:

後半まで時間が表示されるまでは、Seederが正常に実行されていることを意味します~

以下は公式プロセスを使用したSeederの作成です

Thinkphp5プロジェクトでは、コマンド ラインで次のコマンドを入力できます:

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[] = [                &#39;nickname&#39; => mt_rand(10000, 99999),                &#39;email&#39; => mt_rand(10000, 99999).&#39;@qq.com&#39;,                &#39;password&#39; => md5(&#39;123456&#39;),
            ];
        }        $this->table(&#39;users&#39;)->insert($rows)->save();
    }
}
ログイン後にコピー

其内容如下:

php think seed:run
ログイン後にコピー

代码非常的简单,默认的给出了一个 run 方法,现在我们都知道 seeder 文件是用来产生模拟数据的,而产生模拟数据的代码写在 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

Seeder 文件定义好了之后,还必须得执行一下数据才能插入到数据库中,我们可以这样执行:

rrreee

执行成功提示: All Done. Took 0.0552s コードは非常に単純で、run メソッドがデフォルトで指定されています。これで、シーダー ファイルがシミュレーション データとコードの生成に使用されることがわかりました。シミュレーション データを生成するためのコードは run メソッドに記述されています。

Seeder の run メソッド

run メソッドでは、データベースに入力できる任意のコードを入力できます。ここでいくつかのアイデアを紹介します:


要件:

100 個のデータの生成をシミュレートするためにデータ テーブルに Users を与えます。テーブル構造は次のとおりです:

ニックネーム
Field Description
ニックネーム
<a href="http://www.php%20.cn%20/code/114.html" target="_blank">メール</a> メール
パスワード code> パスワード
リクエストを受け取ったら、次のように書くことができます:

rrreee

注: 必ず確認してくださいsave() メソッドを呼び出すと、保存されません。

まず、100 個のデータを生成し、$this->table('users')->insert($rows)->save();を呼び出しました。 > 生成されたデータをデータベースの Users テーブルに挿入します。シンプルではないでしょうか? ^ - ^.

🎜Seeder を実行する🎜🎜 Seeder ファイルを定義したら、データをデータベースに挿入する前にそれを実行する必要があります。次のように実行できます:🎜rrreee🎜 実行成功のプロンプト: All Done。 0.0552秒かかりました。ご覧いただけます: 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜php think seed:run 🎜

以上がThinkphp5 はコンポーザーでシーダーを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート