>  기사  >  백엔드 개발  >  Thinkphp5는 작곡가의 시더를 사용합니다.

Thinkphp5는 작곡가의 시더를 사용합니다.

PHP中文网
PHP中文网원래의
2018-02-18 14:08:371928검색

사례:

몇일전 고객님께서 회원질의응답 시스템을 만들어달라고 하셔서 그 과정을 따라해 보니 데이터베이스 데이터를 불러올 때가 되니 하나씩 추가하는 것이 아닌가 하는 생각이 들었습니다. 좀 멍청하네요~

해결과정:

나중에 매뉴얼도 확인하고 외국 블로그 사례도 보다가 좋은 방법이 떠올랐어요~~~

제 사용기록이 스크린샷이 되었어요:

후자까지 시간이 표시되면 Seeder가 성공적으로 실행되고 있다는 의미입니다~

다음은 공식 프로세스를 사용하여 Seeder를 생성한 것입니다

Thinkphp5 프로젝트에서 , 명령줄에 다음 명령을 입력할 수 있습니다:

php think seed:create UserSeeder

UserSeeder 파일을 생성합니다. 생성이 성공하면 database/seeds 디렉터리에서 볼 수 있습니다. :

database|-seeds
|-|-UserSeeder.php

내용은 다음과 같습니다. 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()
    {

    }
}

其内容如下:

<?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();
    }
}

代码非常的简单,默认的给出了一个 run 方法,现在我们都知道 seeder 文件是用来产生模拟数据的,而产生模拟数据的代码写在 run 方法中就可以了。

Seeder 的 run 方法

run 方法中,我们可以随意填写了可以填充数据库的任意代码。这里我就抛砖引玉啦:

要求:
给数据表 Users 模拟生成100条数据。表结构如下:

字段 说明
nickname 呢称
<a href="http://www.php.cn/code/114.html" target="_blank">email</a> 邮箱
password 密码

收到需求后,我可以这样写:

php think seed:run

注意:一定要调用 save() 方法,否则不会保存的。

首先呢,我生成了100条数据,然后调用 $this->table('users')->insert($rows)->save(); 将生成的数据插入到数据库的 Users 表中。是不是很简单? ^ - ^.

执行 Seeder

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

rrreee

执行成功提示: All Done. Took 0.0552srrreee

코드는 매우 간단합니다. 기본적으로 run 메서드가 제공됩니다. 이제 우리는 시더 파일이 시뮬레이션 데이터를 생성하는 데 사용된다는 것을 알고 있습니다. 시뮬레이션 데이터를 생성하는 코드는 run 메소드에 작성됩니다.


Seeder의 run 메소드

run 메소드에서는 데이터베이스를 채울 수 있는 모든 코드를 채울 수 있습니다. 여기서는 몇 가지 아이디어를 제공합니다.

요구 사항:

데이터 테이블 Users를 제공하여 100개의 데이터 생성을 시뮬레이션합니다. 테이블 구조는 다음과 같습니다:

별명
필드 설명
별명
<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 테이블에 삽입합니다. 아주 간단하지 않나요? ^ - ^.🎜🎜Execute Seeder🎜🎜 Seeder 파일이 정의된 후 데이터가 데이터베이스에 삽입되기 전에 이를 실행해야 합니다. 🎜rrreee🎜성공적인 실행 프롬프트: All Done .0.0552초 걸렸습니다 . 다음을 볼 수 있습니다: 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜php think Seed:run 🎜

위 내용은 Thinkphp5는 작곡가의 시더를 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.