必须记熟的6个高频Artisan命令:make:model(-m同步迁移、-f覆盖)、make:migration(--create或--table必选)、migrate(--force生产强制)、route:list(--name/--path过滤)、tinker(模型命名空间易错)、serve(--host/--port局域网访问);缓存命令需分层清理,down/env依赖环境配置。

php artisan 不是“要不要用”的问题,而是你改完模型、加完字段、切环境、上线前清缓存时,绕不开的执行入口。它不自动解决业务逻辑,但能帮你把重复操作压缩成一行命令。
哪些命令高频到必须记熟
不是所有命令都值得背,以下 6 个覆盖日常开发 80% 场景,且参数易错、后果明显:
-
php artisan make:model:加-m会同步生成迁移文件;加-f(force)才覆盖已存在模型;不加--resource就只是空模型,不会自带 CRUD 方法 -
php artisan make:migration:新建表用--create=table_name,改表必须用--table=table_name;漏写--table会导致 migration 文件里没指定表名,up()中直接报Schema::create()错误 -
php artisan migrate:默认只跑未执行过的迁移;加--force才能在生产环境跳过确认提示;本地误跑两次不会报错,但线上回滚可能丢数据 -
php artisan route:list:加--name=xxx可过滤路由;加--path=api/能限定路径前缀;不加--columns=method,uri,action会输出一堆冗余列,眼花 -
php artisan tinker:输入App\Models\User::first()能查数据,但若模型没加use Illuminate\Database\Eloquent\Model;或命名空间错,会直接抛Class 'User' not found -
php artisan serve:默认监听http://127.0.0.1:8000;加--host=0.0.0.0和--port=8080才能被局域网访问;Windows 上某些杀毒软件会拦截该端口,表现为浏览器一直转圈
缓存类命令为什么总清不干净
常见现象:php artisan cache:clear 后配置还是旧的,view:clear 后 Blade 模板没更新——因为 Laravel 缓存分层,命令作用域不同:
-
cache:clear只清Cache::put()写入的键值,不影响 config / view / route 缓存 -
config:clear必须在config:cache之后才有意义;否则 config 读的是原始 PHP 文件,清了也没用 -
view:clear清的是storage/framework/views/下编译后的 PHP 文件;如果 Blade 模板语法有错,编译失败,这个目录下可能压根没生成对应文件,清了等于白清 -
route:clear和route:cache是一对;没执行过route:cache就清路由缓存,命令会静默退出,无提示
维护模式和环境切换的坑点
php artisan down 和 php artisan env 看似简单,但容易忽略上下文依赖:
-
down会写一个storage/framework/down文件,Nginx/Apache 需要配合重写规则才能返回 503;Laravel 自带的503.blade.php模板不会自动生效 -
env命令只显示当前.env的APP_ENV值,不能修改它;改环境必须手动编辑.env,再运行config:clear && config:cache - 执行
down后,tinker仍可进入,但部分中间件(如检查登录态的)可能提前终止请求,导致你以为“命令没生效” - CI/CD 流水线中若用
php artisan down --render="errors::503",要注意模板路径是否含resources/views/errors/503.blade.php,否则页面空白
migrate 失败,90% 不是语法错,而是 DB_CONNECTION 指向了不存在的数据库,或者 storage 目录不可写——而错误信息里根本不会提这些。


















