连线设定其实也没什麽好介绍的,改 env 这种事 sail 已经弄好了。
即便现在,用 composer create-project 还是有些步骤会忘记,我还写过一篇笔记提醒自己 clone 别人的专案下来要下哪些指令。
总之我们只需要跑 sail artisan migrate
就可以了。跑完可以看看目前资料表的状态 sail artisan migrate:status
。
跑完之後当然要来做点事情,但资料库空空的怎麽办?以下提供四种填充假资料的方法与使用情境:
1.DB CLI => 金牛座的你作风老派稳固,使用的是最熟悉的 db command 与 SQL 指令。
2.Tinker => 处女座的你行动力强,使用 Tinker 快速完成填充资料的目的。
3.Seeder => 摩羯座的你讨厌重复,使用 Seeder 写完一次就能一劳永逸。
4.DB GUI => 适合巨蟹座的你,图象化的资料库管理面版让你有回到家的感觉。
星座跟形容词都是我乱掰的,徵求星座专家帮我改改。
Laravel 8 artisan 提供了 db ,可以直接打 sail artisan db
进入 db。我是使用 mysql 资料库,所以使用 mysql command。
show databases;
显示资料库
show tables;
显示资料表
INSERT INTO users (name, email, password)
VALUES ('jt', '[email protected]', 'password');
插入一笔资料
Tinker 是 artisan 提供的 REPL,让你用 Eloquent ORM 方式与资料库互动。
$user = App\Models\User::create(['name'=>'jt','email'=>'[email protected]','password'=>Hash::make('5566123')]);
插入一笔资料
sail artisan seed
没事发生,因为我们要去把注解打开。
database/seeders 里面预设有个 DatabaseSeeder.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
\App\Models\User::factory(10)->create();
}
}
移除注解再来一次 sail artisan seed
资料库就多了十笔资料。
而这些假资料的内容是定义在 database\factories\UserFactory.php
。
刚刚介绍的方法是 Model Factory。
Laravel 8 的 factory 变成一个类别,预设加入 model,打开 User Model 可以看到里面有个 HasFactory。
这是我们刚刚 seed 填充十个定义在 factory 的资料的写法:
User::factory(10)->create();
这是之前的写法:
factory(User::class, 50)->create();
call method 可以在定义跑 seed 的顺序,照理来说会写在 DatabaseSeeder.php 为整个专案定义 seed 顺序。
public function run()
{
$this->call([
\Database\Seeders\UserSeeder::class,
\Database\Seeders\PostSeeder::class
]);
}
sail artisan seed
是跑 DatabaseSeeder.php,如果有单独执行某个 seed 的需要也可以为个别 class 写 seed。sail artisan db:seed --class=PostSeeder
详见手册拉
https://laravel.com/docs/8.x/seeding
在 Factory 产假资料通常使用 faker 或 Laravel 的 Str helper。
Factory Class 在这次改版有不少变化,可以参考这篇
https://auth0.com/blog/whats-new-in-laravel-8/
我目前在 macOS 上使用的是 TablePlus
现在不是很想截图
今天关心大家的健康,跟大家分享我的办公室小物:
眼睛
按摩热敷
环境
以下环境一律劝离
其他
说起群众募资,有时是开始新产品、新服务或各种古怪的新奇事物。但也有典型的例如线上课程、解决某一件社...
制作FF14 chatbot主要步骤如下: 功能需求 资料收集 资料前处理 chatbot功能能开发...
前言 各位早安,书接上回我们练习了条件判断语法 if else elif 的用法,今天我们要来介绍它...
今天来练习怎麽让动态的物件在影片中消除, 影片范例 但因为没有付钱买,有浮水印,所以不知道能不能去掉...
昨日的回家功课小问题 没错,你如果这样写就会直接报错。 原因其实很简单,就是常数无法运算,就像 &q...