一、开启调试模式
ThinkPHP6调试模式的开启要比ThinkPHP5.0多几个步骤:
1.打开 app/config/app.php
修改第 31 行代码
// 显示错误信息 'show_error_msg' => true,
修改完成后的调试模式是这样的
还是跟我们想要的调试模式不一样
2.打开根目录下的 .example.env
文件
将第一行代码改成
APP_DEBUG = true
并将 .example.env
文件重命名为 .env
经过以上修改,调试模式的样子如下图:
终于是我们想要的了!
还有一个 .env
文件的大坑,就是
二、连接数据库时报错
我们已经在 datebase.php
配置完数据库了
但是连接数据库的时候还是会报错!
错误码如下:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
解决方法。。。
在我们第一条里面修改完成的 .env 文件内再配置一遍,就可以了…
真是无语了…
三、view视图的渲染
用过 tp5.0
的大佬肯定都知道:在 tp5.0
中,我们通过继承 Controller
类,在控制器的自定义方法中就可以使用
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { return $this->fetch('index/index'); } }
这种方式来渲染视图文件,然而在 tp6
中,我们这样写就会报错,就是我上面用来展示调试模式开启成功截图中的错误。
那么这个问题要怎么解决呢?
1.首先我们要使用 composer
将 topthink
提供的模板引擎类拉取下来
打开命令行窗口,将目录切换到项目根目录下,输入:
composer require topthink/think-view
等待拉取完毕即可进行下一步
2. use
刚才拉取的 View
类
这里分两种思路讲:
①(推荐)打开 app/BaseController.php
在原有代码基础上, use 的地方新增一条
use think\facade\View;
再新增一个自定义方法
/** * 在Controller中用$this->fecth()解析和获取视图模板内容 * @Author 风影OvO * @DateTime 2021-12-20 * @copyright [www.fyovo.com] * @license [BY-NC-SA/3.0/CN] * @version [1.0] * @param string $template [description] * @return [type] [description] */ protected function fetch($template = ''){ return View::fetch($template); }
这样我们就可以像用 tp5.0
一样在我们创建的控制器中继承 BaseController
<?php namespace app\controller; use app\BaseController; class Index extends BaseController { public function index(){ return $this->fetch('index/index'); } }
以 $this
的形式渲染视图了。
这样写的好处就是无论你再新建多少个控制器,只要继承 BaseController
即可
就不需要在每个控制器中都 use think\facade\View
了,而且还比较装逼,显得你代码很OOP。
②第二种思路就是刚才说的,在每个控制器中都要写一遍 use think\facade\View
然后这样渲染视图
<?php namespace app\controller; use app\BaseController; use think\facade\View; class Index extends BaseController { public function index(){ return View::fetch('index/index'); } }
不太推荐这种思路,别问为什么,问就是懒。
四、视图输出字符串内容替换
在 tp5.0
中这个功能可以在 config.php
中的第 146 行找到并使用
// 视图输出字符串内容替换 'view_replace_str' => [ '__STATIC__' => '/static' ],
但是在 tp6
中,需要我们打开 app/config/view.php
文件,手动添加
贴上这个文件内的完整代码:
<?php // +---------------------------------------------------------------------- // | 模板设置 // +---------------------------------------------------------------------- return [ // 模板引擎类型使用Think 'type' => 'Think', // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法 'auto_rule' => 1, // 模板目录名 'view_dir_name' => 'view', // 模板后缀 'view_suffix' => 'html', // 模板文件名分隔符 'view_depr' => DIRECTORY_SEPARATOR, // 模板引擎普通标签开始标记 'tpl_begin' => '{', // 模板引擎普通标签结束标记 'tpl_end' => '}', // 标签库标签开始标记 'taglib_begin' => '{', // 标签库标签结束标记 'taglib_end' => '}', // 视图输出字符串内容替换 'tpl_replace_string' => [ '__STATIC__'=>'/static', ], ];
这样才能实现 视图输出字符串内容替换 功能。
先讲这么多,后面想起什么再补充。
-End-