入门Laravel应先用php artisan serve启动默认欢迎页,再修改routes/web.php返回简单字符串验证;控制器需手动注册路由,数据库配置修改后须执行php artisan config:clear。

别从“Laravel 是什么”开始学,直接用 php artisan serve 跑起一个能访问的路由,才是入门真正的起点。
怎么让第一个 Laravel 路由跑起来
新手常卡在“装完 Laravel 却打不开 / 404 / 显示空白”,根本原因是没走通最小可运行路径。不是环境没配好,而是没意识到 Laravel 默认不自动加载 routes/web.php 以外的文件,也不默认启用重写规则。
- 用
composer create-project laravel/laravel myapp创建项目,别用官网推荐的laravel new(它依赖全局安装的 Laravel Installer,容易因版本或 PATH 问题失败) - 进项目后立刻执行
php artisan serve,不要先改配置、不要急着配 Nginx - 浏览器打开
http://127.0.0.1:8000,如果看到 Laravel 欢迎页,说明核心已通;如果报错,优先检查 PHP 版本是否 ≥ 8.1(php -v),Laravel 10 不兼容 PHP 8.0 - 修改
routes/web.php中的Route::get,把返回内容换成简单字符串,比如return 'hello';,确认改动实时生效
为什么 php artisan make:controller 生成的控制器不响应请求
因为命令只生成文件,不自动注册路由。Laravel 不像 ThinkPHP 那样按约定自动绑定控制器方法到 URL,所有控制器动作必须显式声明在 routes/web.php 或 routes/api.php 中。
-
php artisan make:controller UserController后,得手动加一行:Route::get('/user', [UserController::class, 'index']); - 如果控制器方法带参数(如
show($id)),路由定义里必须对应写成Route::get('/user/{id}', [UserController::class, 'show']);,漏掉{id}就会 404 - 别在控制器里直接 echo 或 var_dump —— Laravel 的响应机制靠 return,echo 会破坏响应头,可能造成 “headers already sent” 错误
数据库迁移总失败:常见 SQLSTATE[HY000] [1045] 和空表问题
错误信息 SQLSTATE[HY000] [1045] Access denied for user 表示 .env 里的数据库凭据没生效,不是 MySQL 服务没开。
- 改完
.env后必须执行php artisan config:clear,否则 Laravel 会读缓存里的旧配置(config:cache只用于生产环境,开发时禁用) -
DB_CONNECTION=mysql不能写成DB_CONNECTION=MySQL,大小写敏感;端口DB_PORT=3306别漏写 -
php artisan migrate执行后没建表?先确认database/migrations/下有文件,再检查该文件里的up()方法是否调用了Schema::create,而不是只写了注释 - 本地用 SQLite 更省事:把
.env改成DB_CONNECTION=sqlite,删掉其他 DB_ 配置项,再运行touch database/database.sqlite,就能跳过 MySQL 安装和权限配置
真正卡住人的往往不是语法,而是 Laravel 把很多隐式行为藏在了配置缓存、中间件栈、服务提供者注册顺序这些地方。改完 .env 或路由后,多问一句“我清过缓存了吗”,比反复重装 Composer 有用得多。










