必须掌握php基础并完成带数据库crud的登录注册页,再学thinkphp;环境启动常见问题源于php版本低于7.2或启用了short_open_tag。

直接上手 ThinkPHP 前,必须确认 PHP 基础已能写完一个带数据库增删查改的登录注册页——否则所有框架操作都是空中楼阁。
先跑通 php think run,别急着写业务
新手最常卡在环境启动阶段:明明执行了 composer create-project topthink/think myapp,却访问不到欢迎页。核心问题不是框架难,而是没意识到 ThinkPHP 5.1+ 默认依赖 PHP 7.2+ 且禁用 short_open_tag(即不能用 ,必须写全 <?php )。
- 检查 PHP 版本:
php -v,低于 7.2 就换环境,XAMPP 或 Laragon 比手动配更稳 - 确认入口文件
public/index.php存在且未被重命名——ThinkPHP 6 默认入口在public/下,不是根目录 - 运行开发服务器必须进项目根目录,执行
php think run,不是php -S;端口默认是 8000,浏览器输http://127.0.0.1:8000 - 如果报错
Class 'think\facade\Route' not found,说明composer install没成功或 vendor 未生成,删掉vendor和composer.lock重装
路由配不对,Route::get() 就永远 404
ThinkPHP 的路由规则不写在 Nginx/Apache 配置里,而是在 route/app.php 中硬编码定义。新手常把 URL 路径和控制器方法名搞混,比如想访问 /user/list,却写了 Route::get('user', 'User/list'),结果只匹配 /user。
-
Route::get('user/list', 'User/list')才能响应/user/list请求 - 控制器类必须放在
app/controller/下,文件名如User.php,类名必须是User,命名空间固定为app\controller - 方法必须是
public,且返回值建议用字符串或json(),别直接echo——框架会接管输出 - 调试路由是否生效:执行
php think route:list,看终端输出的路由表里有没有你加的那条
数据库连不上,90% 是 .env 里的配置漏了 DB_PREFIX 或填错端口
ThinkPHP 用 .env 文件管理数据库配置,但新手常复制粘贴时忽略注释行、空格或端口号。MySQL 默认端口是 3306,但很多本地环境(如某些版本的 MAMP)改成了 8889,不显式写出来就会连失败。
-
.env必须放在项目根目录,不能放在config/下;文件名是.env,不是env或.env.example - 关键字段必须齐全:
DB_TYPE=mysql、DB_HOST=127.0.0.1、DB_NAME=your_db、DB_USER=root、DB_PWD=(空密码也要写等号)、DB_PORT=3306 - 如果表名带前缀(如
tp_user),必须设DB_PREFIX=tp_,否则Db::name('user')会去找user表而非tp_user - 测试连接:在控制器里写
try { Db::query('SELECT 1'); return 'OK'; } catch (\Exception $e) { return $e->getMessage(); }
模型查不出数据,先看 find() 和 select() 的返回类型差异
新手调用 User::find(1) 返回 null,第一反应是数据库没数据,其实更可能是主键字段名不是 id。ThinkPHP 模型默认用 id 当主键,如果你的表主键叫 uid 或 user_id,不显式声明就会查不到。
- 在模型类里加
protected $pk = 'uid';显式指定主键字段 -
find()返回单条记录(对象或数组),select()返回集合(数组),别对select()结果再调->toArray() - 用
where()时注意字符串值要加引号:where('status', 1)对,where('status', '1')在某些场景下也可能错(类型不一致) - 调试 SQL:开启数据库日志,在
.env加APP_DEBUG=true,然后看runtime/log/下的日志文件,或用Db::getLastSql()
真正卡住人的从来不是语法,而是 .env 文件里一个空格、路由文件里大小写拼错、或者模型里忘了写 $pk —— 这些细节不会报明显错误,只会让逻辑静默失效。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











