本期视频登录后即可观看

Laravel 5.5 基础

31 集视频
4小时18分钟

Laravel项目进行测试时,常常需要在运行测试之前写入一些数据到数据库中。创建测试数据时,除了手动的来设置每个字段的值,还可以使用 Eloquent 模型 的「工厂」来设置每个属性的默认值。闭包内为模型工厂的定义,你可以返回模型中所有属性的默认测试值。在该闭包内会接收到 Faker PHP 函数库的实例,它可以让你很方便的生成各种随机数据以进行测试。

晓梦 2019.04.26 10:29

请问,factory工厂 和 seeder 都可以生成数据,这两个各自的作用是什么呢?

国营 2019.04.26 11:41

我觉得你再看一遍就明白了,factory为的是生成测试数据,以后这些数据就不用了,而seeder插入的数据更多的是系统中关键的初始化系统的信息

西西呀 2019.06.24 03:45

如果要对多个数据表进行数据填充是不是要建立多个工厂

国营 2019.06.24 04:33

个人项目的话全写在UserFactory里面也行,团队的项目最好分开管理

西西呀 2019.06.24 08:16

array_random这个函数报错诶

国营 2019.06.24 08:20

你希望我看到这段话怎么回答你??????我连点破案线索都没有~

西西呀 2019.06.24 08:32

我的原因,就是我在生成批量数据的时候,使用了'kh_dq'=&gtarray_random(['431500','431300']),tinker生成数据,报错: Call to undefined function array_random()

国营 2019.06.24 08:52

$random = Arr::random($array);

看来5.8最新版本已经开始对全局函数痛下杀手了,用面向对象的调用方式吧

西西呀 2019.06.24 08:57

我laravel的版本是5.2,我只是用一下laravel的工厂类来生成公司项目所需的测试数据,公司现在用php5,我电脑开发环境的php版本是5.5.12

国营 2019.06.24 09:01

版本这么古老啊,升一下吧,或者用array_rand

西西呀 2019.06.24 09:05

公司项目都是php5啦,没得办法,公司是用的thinkphp,还是远古版本,打算自己到时候做一套laravel版本的项目,现在跟着站长学

国营 2019.06.24 09:09

用array_rand替换一下吧,php5.5太低了,效率也不行,用laravel的话直接用新版本吧,别5.2 也别5.5了,5.5虽然是长期支持版,但是也快到期了

thinkings 2020.03.19 16:14

laravel 7 里改成了 'role' =&gt array_rand(['admin', 'number', 'guest'])

array_random, 改成了array_rand

国营 2020.03.19 16:22

这个我还真没注意,这么晚了就别熬夜了吧,多睡点觉,增强点体质

thinkings 2020.03.19 16:25

嗯嗯 今天过不完了 明天继续学习 晚安💤

Robii 2020.09.27 14:40

laravel 8 使用应改为 php artisan tinker Psy Shell v0.10.4 (PHP 7.3.11 — cli) by Justin Hileman &gt&gt&gt namespace app\models\User 【8中 可省】 &gt&gt&gt User::factory(3)-&gtcreate() 【 factory(User::class, 500)-&gtcreate() 视频laravel5.5的版本 】

在此感谢学院君细致的文档中实践的贴图 及 站长严苛的要求:细致阅读文档。

国营 2020.09.27 14:45

这才是正确的技术人的态度,千万不要动不动就张嘴要答案,该自己干的事儿就得自己主动去寻求答案,尽量减少对别人的依赖

微信扫码登录