사례:
몇일전 고객님께서 회원질의응답 시스템을 만들어달라고 하셔서 그 과정을 따라해 보니 데이터베이스 데이터를 불러올 때가 되니 하나씩 추가하는 것이 아닌가 하는 생각이 들었습니다. 좀 멍청하네요~
해결과정:
나중에 매뉴얼도 확인하고 외국 블로그 사례도 보다가 좋은 방법이 떠올랐어요~~~
제 사용기록이 스크린샷이 되었어요:
후자까지 시간이 표시되면 Seeder가 성공적으로 실행되고 있다는 의미입니다~
다음은 공식 프로세스를 사용하여 Seeder를 생성한 것입니다
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[] = [ 'nickname' => mt_rand(10000, 99999), 'email' => mt_rand(10000, 99999).'@qq.com', 'password' => md5('123456'), ]; } $this->table('users')->insert($rows)->save(); } }
代码非常的简单,默认的给出了一个 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 文件定义好了之后,还必须得执行一下数据才能插入到数据库中,我们可以这样执行:
rrreee执行成功提示: All Done. Took 0.0552s
rrreee
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!