如何快速学会使用Laravel框架?
- 内容介绍
- 文章标签
- 相关推荐
本文共计897个文字,预计阅读时间需要4分钟。
Laravel并非又一个PHP框架,而是将路由、数据库操作、模板渲染、命令行工具(如artisan)、环境配置(如.env)等打包进一个开箱即用的系统。新手可以快速上手,直接通过php artisan serve启动开发环境,立即开始工作。
怎么确认本地环境真能跑 Laravel?
别急着敲 composer create-project,先验证三件事:
- 终端里运行
php -v,输出必须是PHP 8.1或更高(Laravel 11 要求PHP 8.2+) - 运行
composer --version,确保有Composer 2.5+;旧版可能卡在依赖解析 - 别用 XAMPP/MAMP 启动项目——
php artisan serve是独立 HTTP 服务,和 Apache/Nginx 冲突反而报错
如果 php artisan serve 启动后浏览器打不开 http://127.0.0.1:8000,大概率是端口被占(比如另一个 Laravel 项目还在跑),加 --port=8001 换个端口试试。
第一次写路由和视图,为什么返回空白或 404?
常见错误不是代码写错,而是文件位置或命名不对:
-
routes/web.php里的Route::get('/test', function () { return 'ok'; });必须放在<?php标签内,且文件不能有 UTF-8 BOM 头(VS Code 默认保存就是无 BOM) - 用
view('welcome')时,对应文件必须是resources/views/welcome.blade.php,少.blade.php后缀或放错目录都会报View [welcome] not found - Blade 文件里如果写了
@extends('layouts.app'),但resources/views/layouts/app.blade.php不存在,也会白屏——初学建议先写纯 HTML 视图,不继承
数据库连不上,php artisan migrate 报错怎么办?
90% 的问题出在 .env 配置和 MySQL 状态:
-
DB_HOST别写localhost,改用127.0.0.1(尤其 macOS 使用 Homebrew MySQL 时) -
DB_DATABASE必须是已创建的空库名,Laravel 不会自动建库;用mysql -u root -p -e "CREATE DATABASE myapp;"先手动建 - 执行
php artisan migrate前,务必先运行php artisan config:clear——.env修改后 Laravel 会缓存配置,不清理就永远读不到新值
如果提示 SQLSTATE[HY000] [2002] Connection refused,说明 MySQL 进程根本没起来,不是 Laravel 的锅。
用 artisan make:controller 生成的控制器,为什么路由不生效?
关键在命名空间和路由写法是否匹配:
- 生成命令是
php artisan make:controller UserController,那类名就是UserController,完整命名空间是App\Http\Controllers\UserController - 路由里必须写成
Route::get('/users', [UserController::class, 'index']);,不能漏掉::class,也不能写成字符串'UserController@index'(Laravel 9+ 已弃用该写法) - 控制器方法里如果要返回视图,记得用
return view('users.index');对应resources/views/users/index.blade.php,路径用点号分隔,不是斜杠
最常被忽略的是:修改了 app/Http/Controllers/ 下的文件后,没清掉 OPCache(尤其 Windows + XAMPP 组合),导致代码改了但行为不变——此时重启 PHP 服务或临时关掉 OPCache 更快定位问题。
本文共计897个文字,预计阅读时间需要4分钟。
Laravel并非又一个PHP框架,而是将路由、数据库操作、模板渲染、命令行工具(如artisan)、环境配置(如.env)等打包进一个开箱即用的系统。新手可以快速上手,直接通过php artisan serve启动开发环境,立即开始工作。
怎么确认本地环境真能跑 Laravel?
别急着敲 composer create-project,先验证三件事:
- 终端里运行
php -v,输出必须是PHP 8.1或更高(Laravel 11 要求PHP 8.2+) - 运行
composer --version,确保有Composer 2.5+;旧版可能卡在依赖解析 - 别用 XAMPP/MAMP 启动项目——
php artisan serve是独立 HTTP 服务,和 Apache/Nginx 冲突反而报错
如果 php artisan serve 启动后浏览器打不开 http://127.0.0.1:8000,大概率是端口被占(比如另一个 Laravel 项目还在跑),加 --port=8001 换个端口试试。
第一次写路由和视图,为什么返回空白或 404?
常见错误不是代码写错,而是文件位置或命名不对:
-
routes/web.php里的Route::get('/test', function () { return 'ok'; });必须放在<?php标签内,且文件不能有 UTF-8 BOM 头(VS Code 默认保存就是无 BOM) - 用
view('welcome')时,对应文件必须是resources/views/welcome.blade.php,少.blade.php后缀或放错目录都会报View [welcome] not found - Blade 文件里如果写了
@extends('layouts.app'),但resources/views/layouts/app.blade.php不存在,也会白屏——初学建议先写纯 HTML 视图,不继承
数据库连不上,php artisan migrate 报错怎么办?
90% 的问题出在 .env 配置和 MySQL 状态:
-
DB_HOST别写localhost,改用127.0.0.1(尤其 macOS 使用 Homebrew MySQL 时) -
DB_DATABASE必须是已创建的空库名,Laravel 不会自动建库;用mysql -u root -p -e "CREATE DATABASE myapp;"先手动建 - 执行
php artisan migrate前,务必先运行php artisan config:clear——.env修改后 Laravel 会缓存配置,不清理就永远读不到新值
如果提示 SQLSTATE[HY000] [2002] Connection refused,说明 MySQL 进程根本没起来,不是 Laravel 的锅。
用 artisan make:controller 生成的控制器,为什么路由不生效?
关键在命名空间和路由写法是否匹配:
- 生成命令是
php artisan make:controller UserController,那类名就是UserController,完整命名空间是App\Http\Controllers\UserController - 路由里必须写成
Route::get('/users', [UserController::class, 'index']);,不能漏掉::class,也不能写成字符串'UserController@index'(Laravel 9+ 已弃用该写法) - 控制器方法里如果要返回视图,记得用
return view('users.index');对应resources/views/users/index.blade.php,路径用点号分隔,不是斜杠
最常被忽略的是:修改了 app/Http/Controllers/ 下的文件后,没清掉 OPCache(尤其 Windows + XAMPP 组合),导致代码改了但行为不变——此时重启 PHP 服务或临时关掉 OPCache 更快定位问题。

