ThinkPHP框架常见问题集锦(会不断更新)

来源:互联网 发布:龙珠超宇宙捏脸数据 编辑:程序博客网 时间:2024/06/01 10:23

1、在linux服务器部署时,提示找不到模板
①模板文件确实存在
②权限也没有问题

当时部署时,TaskController里在展示view模板时

$this->display('task/process');

而在服务器上View里存放的在Task(大写)目录下的process.html
问题分析:大小写的问题,linux文件系统对文件大小写比较敏感,所以读取不到模板。

这里需要大家在开发的时候要养成个好习惯,展示模板时控制器名字用首字母大写的方式

2. TP框架pathinfo模式分页不支持汉字的问题

问题描述: 在项目中通过关键字模糊匹配时会遇到经常输入汉字的情况,这时分页生成的数据,汉字会被编码,导致搜索结果出现异常。
比如说这种url模式 http://army.com/index.php/Log/index/desc/%E5%90%8E%E5%8F%B0/p/2.html(乱码部分就是被编码的汉字)
解决方法: 可以在配置文件中修改 ‘URL_MODEL’ => 3, 改成兼容模式可以避免这种问题。

3、模板布局Layout

在项目开发中,如果开启了模板布局,在conf.php有如下配置

    'LAYOUT_ON'=>true,    'LAYOUT_NAME'=>'layout',

如果某些页面不需要使用布局模板功能,可以在模板文件开头加上 {NOLAYOUT} 字符串。或者在控制器中动态实现,在渲染前加入如下代码

layout(false);

4、Post请求使用create()方法生成输入数据时,如何添加新数据
大家在用到框架自带的验证方法时,通常会用到 $model->create()方法自动生成数据,有时候会发生这几种情况

生成的数据还想多加几个字段
如果有特殊数据比如说时间转化
这时可以直接

$model->属性 = ‘属性值’

的方法赋值即可。

5、Model的_sql()方法不输出sql语句

在框架的数据库配置项中有个DB_DEBUG配置,需要修改成true才能输出sql语句。

return array(    'DB_TYPE' => 'mysql', //数据库类型    'DB_HOST' => 'localhost', //数据库主机    'DB_NAME' => 'tpshop', //数据库名称    'DB_USER' => 'root', //数据库用户名    'DB_PWD' => '123456', //数据库密码    'DB_PORT' => '3306', //数据库端口    'DB_PREFIX' => 'tp_', //数据库前缀    'DB_CHARSET'=> 'utf8', // 字符集    'DB_DEBUG'  => 'true', // 数据库调试模式 开启后可以记录SQL日志);
0 0
原创粉丝点击