上一篇文章,我们讲了《MySQL配置主从复制实现读写分离》,今天继续讲解如何在Thinkphp中配置数据库的读写分离。
1、Mysql配置读写分离,见《MySQL配置主从复制实现读写分离》
2、运用到THINKPHP5项目里
修改一下项目的数据库配置文件:
//服务器地址
'hostname' => '192.168.33.10,192.168.33.11',
// 数据库部署方式:0 ……
一、thinkphp6怎么检查版本
方法1、直接使用代码输出:echo \think\facade\App::version()
方法2、在控制台入口文件执行控制台指令:php think version
二、thinkphp6怎么使用多应用模式
如果要使用多应用模式,需要使用Composer安装多应用模式扩展think-multi-app。
composer require topthink/think-multi-app
三、thin……
现在很多框架都支持且仅支持使用composer来安装和管理,比如最新的thinkphp6,对于很多没接触过composer的人很迷茫,但在百度搜thinkphp6怎么生成二维码,大多没结果。
刚好最近在用thinkphp6重写一个项目,遇到生成二维码这块,显然之前的phpqrcode是不能再用了,而且composer上面也没有phpqrcode的版本,所以呢,用endr……
当打开网站发现报错:mkdir(): Protocol error,一般出问题的就是缓存文件目录无法创建(window服务器目录不能使用特殊字符)。
报错信息页面往下找到 Exception Datas,看看Error Context下面的name,filename,dir,后面显示的目录路径runtime/xxxx目录是否出现了特殊字符,比如filename = xxxx/runtime/web/cache/arc_ca……
thinkphp是当下被用得最为广泛的php框架,而在使用thinkphp开发的过程中,我们也许会遇到这样的问题,当我们访问一个不存在的Controller或不存在的方法时会出现报错的界面,这样显得不美观且不安全。
这种情况下,我们的处理方式就是把这些不存在的控制器或方法使用_empty定义至我们的404页面。怎么实现呢,下面是方法。
……
在项目里我们经常会使用到多语言,而有一种情况是在切换不同的语言时需要调用数据库里的不同字段的值。
例如,在文章内容页,如果是中文,读取content字段里的值显示,如果是英文,则读取en_content字段里的值显示。
实现这样的需求,需要在Model层做判断,以上面的例子需求为例,我们需要在文章Model里使用_after_select……
在使用php7的thinkphp框架在开启验证码的时候发现报错:Cannot use ‘String’ as class name as it is reserved
报错的原因:主要是php7把String定为关键字,而在thinkphp框架中有一个类用了string类名
解决方法:
1、将文件ThinkPHP\Library\Org\Util\String.class.php改名,例如复杂成Stringnew.class.php,……
thinkphp从3.2到5.x的升级,很多方法都做了调整:
1、打印mysql
比如:$model->select();
3.2使用getLastSql()打印:
var_dump($model->getLastSql());
5.x使用fetchSql()打印:
$re = $model->fetchSql(true)->select();
var_dump($re);
2、输出单个字段的值
比如,获取id为1的name值:
3.2为:
$name = $model->where(&……
有时在window上运行正常的thinkphp3.2,放到linux中会报“无法加载控制器:Admin.php”或“无法加载控制器:Index.php”。
出现这种情况,主要还是因为tp中使用了pathinfo访问模式,而linux中却没有配置支持这种访问模式。
所以下面就介绍下在linux中配置支持pathinfo和rewrite两种url访问方式的方法。
本方法只需要配置nginx.c……