本期视频登录后即可观看
Laravel 5.5 基础
31 集视频
4小时18分钟
Laravel项目进行测试时,常常需要在运行测试之前写入一些数据到数据库中。创建测试数据时,除了手动的来设置每个字段的值,还可以使用 Eloquent 模型 的「工厂」来设置每个属性的默认值。闭包内为模型工厂的定义,你可以返回模型中所有属性的默认测试值。在该闭包内会接收到 Faker PHP 函数库的实例,它可以让你很方便的生成各种随机数据以进行测试。
请问,factory工厂 和 seeder 都可以生成数据,这两个各自的作用是什么呢?
我觉得你再看一遍就明白了,factory为的是生成测试数据,以后这些数据就不用了,而seeder插入的数据更多的是系统中关键的初始化系统的信息
如果要对多个数据表进行数据填充是不是要建立多个工厂
个人项目的话全写在UserFactory里面也行,团队的项目最好分开管理
array_random这个函数报错诶
你希望我看到这段话怎么回答你??????我连点破案线索都没有~
我的原因,就是我在生成批量数据的时候,使用了'kh_dq'=>array_random(['431500','431300']),tinker生成数据,报错: Call to undefined function array_random()
$random = Arr::random($array);
看来5.8最新版本已经开始对全局函数痛下杀手了,用面向对象的调用方式吧
我laravel的版本是5.2,我只是用一下laravel的工厂类来生成公司项目所需的测试数据,公司现在用php5,我电脑开发环境的php版本是5.5.12
版本这么古老啊,升一下吧,或者用array_rand
公司项目都是php5啦,没得办法,公司是用的thinkphp,还是远古版本,打算自己到时候做一套laravel版本的项目,现在跟着站长学
用array_rand替换一下吧,php5.5太低了,效率也不行,用laravel的话直接用新版本吧,别5.2 也别5.5了,5.5虽然是长期支持版,但是也快到期了
laravel 7 里改成了 'role' => array_rand(['admin', 'number', 'guest'])
array_random, 改成了array_rand
这个我还真没注意,这么晚了就别熬夜了吧,多睡点觉,增强点体质
嗯嗯 今天过不完了 明天继续学习 晚安💤
laravel 8 使用应改为 php artisan tinker Psy Shell v0.10.4 (PHP 7.3.11 — cli) by Justin Hileman >>> namespace app\models\User 【8中 可省】 >>> User::factory(3)->create() 【 factory(User::class, 500)->create() 视频laravel5.5的版本 】
在此感谢学院君细致的文档中实践的贴图 及 站长严苛的要求:细致阅读文档。
这才是正确的技术人的态度,千万不要动不动就张嘴要答案,该自己干的事儿就得自己主动去寻求答案,尽量减少对别人的依赖