要让第一个路由在浏览器显示,只需三步:用composer create-project laravel/laravel myapp创建项目;执行php artisan serve并访问http://127.0.0.1:8000确认欢迎页;修改routes/web.php中路由为return 'hello';,若无反应需先运行php artisan config:clear。

直接上手跑通第一个路由,比读十页文档更接近“会用 Laravel”——它不是靠理解概念启动的,而是靠 php artisan serve 能返回字符串才算真正入门。
怎么让第一个路由在浏览器里显示出来
新手卡住的绝大多数情况,不是环境没装好,而是没走通最小可运行路径:Laravel 默认欢迎页能打开,但自己加的路由 404 或空白。关键动作只有三步:
- 用
composer create-project laravel/laravel myapp创建项目(别用laravel new,它依赖全局 installer,PATH 或版本不一致就失败) - 进目录后立刻执行
php artisan serve,访问http://127.0.0.1:8000确认欢迎页出现 - 打开
routes/web.php,把默认的Route::get改成return 'hello';,刷新页面看是否实时生效
如果改完没反应,先执行 php artisan config:clear —— 开发阶段缓存配置是常见坑,config:cache 只该用在生产环境。
控制器为什么写了却 404
php artisan make:controller UserController 只生成文件,不注册路由。Laravel 不自动绑定类方法到 URL,必须手动声明。
- 要在
routes/web.php中显式写:Route::get('/user', [UserController::class, 'index']); - 如果控制器方法带参数,比如
show($id),路由必须带占位符:Route::get('/user/{id}', [UserController::class, 'show']);,漏掉{id}就 404 - 别在控制器里用
echo或var_dump调试——Laravel 响应靠return,输出会破坏 headers,报 “headers already sent” 错误
数据库迁移总失败,错在哪
最典型的错误信息是 SQLSTATE[HY000] [1045] Access denied for user,这不是 MySQL 没开,而是 .env 配置没生效。
- 检查
.env文件中DB_CONNECTION=mysql(注意大小写,写成MySQL就无效) -
DB_PORT=3306必须显式写出,不能省略 - 改完
.env后必须执行php artisan config:clear,否则 Laravel 读的是配置缓存 - 执行
php artisan migrate前,确认database/migrations/下有文件,且其中up()方法调用了Schema::create()或类似操作
真正的难点不在语法,而在“哪些操作必须清缓存”“哪些路径必须显式注册”“哪些错误其实是配置未重载”。这些细节不踩一遍,文档读得再熟也跑不通请求。











