ThinkPHP 的一些知识
1.定义控制器层不一定要继承Controller,但是要输出模板的话,却是必须继承了。
2.通过设置CONTROLLER_LEVEL(默认为1),可以通过子目录把控制器分层存放。(比如 'CONTROLLER_LEVEL' => 2, 可以分两层存放)
3.访问控制器方法可以有前置和后置操作,比如(_before_index,_after_index),其他分层控制器和内部控制器则没有,不过Controller类可以有_initialize在类实例化时候执行
4.如果没有控制器方法,但是有视图模板的话,仍然可以方法该action。定义了_empty方法就不行了
5.由于不能相信用户的任何输入,所以action参数最好有默认值
6.'URL_HTML_SUFFIX'=>'' 则支持所有的静态后缀,URL_DENY_SUFFIX 比 URL_HTML_SUFFIX 的优先级高
7.URL大小写
一旦开启了'URL_CASE_INSENSITIVE' => true(忽略大小写), 则UserTypeController全小写方位的话应该是user_type
可以用U方法生成相关的URL地址,可以确保在项目的移植过程中,不受环境的影响
U('Home/Blog/read#footer@blog.thinkphp.cn','id=1'); 支持锚点、域名、参数
8.Controller的success和error方法会自动判断当前请求是否为ajax请求,如果是的话就调用ajaxReturn返回信息
ajax方式下面,success和error方法会封装下面的数据返回:
$data['info'] = $message; // 提示信息内容
$data['status'] = $status; // 状态 如果是success是1 error 是0
$data['url'] = $jumpUrl; // 成功或者错误的跳转地址
9. I 方法第一个参数为变量名,第二个为默认值,第三个是过滤器名称
php内置了很多过滤器,具体请查看filter_list
10. DSN
字符串定义采用DSN格式定义,格式定义规范为:
数据库类型://用户名:密码@数据库主机名或者IP:数据库端口/数据库名#字符集
11.
浙公网安备 33010602011771号