关于控制器的U方法:
在项目开发中我们需要动态得到某一个action的URL地址,此时我们就可以用到了U方法:
U(‘地址表达式', ['参数'], [伪静态后缀], [显示域名])
U(‘Blog/read’, array('id'=>1)) U('Blog/read?id=1') U('Blog/read?id=1') 三种效果是一样的
ajax返回
框架底层Controller类提供了ajaxReturn方法可以返回信息给客户端,并且支持json、jsonp、xml、Eval四种格式。
$data = array('test1', 'test2');
$this->ajaxReturn($data);
默认返回json格式的信息,我们可以添加参数返回指定格式 $this->ajaxReturn($data, 'xml')这样就会返回我们指定的xml格式。
我们也可以通过设置来进行选择不同的默认返回格式 DEFAULT_AJAX_RETURN
因为json和jsonp是两种不同的东西,返回的回调函数默认为jsonpReturn();
跳转和重定向
在应用开发中,我们做完一系列的逻辑处理后会有一个从成功或者失败的结果,这样我们可以跳转到成功和失败的界面中并带有一些参数信息。
$this->success('成功信息', 'Blog/list', 3) 三个参数,分别为结果信息、跳转的界面、跳转等待时间
$this->error('失败信息', 'Blog/list', 3)
成功模板和失败模板可以在配置中进行设定
‘TMPL_ACTION_ERROR’=>THINK_PATH. 'Tpl/dispatch_jump.tpl',
‘TMPL_ACTION_SUCCESS’=>THINK_PATH. 'Tpl/dispatch_jump.tpl',
也可以使用项目内部的模板信息:Public :error Public:success
框架中Controller类的redirect方法可以实现重定向(参数同U方法一样)
$this->redirect('重定向地址', 参数, 跳转时间, '页面正在跳转中');
I()方法
I方法是ThinkPHP用于更加方便和安全的获取系统输入变量,可以用于任何地方
例如获取get传递的id值
$id = I('get.id', 1, func) //1为默认值, func为过滤方法
I('param.id')可以获取get\post\put传来的值
可以简化成 I('id')
配置中的DEFAULT_FILTER 可以设置默认的过滤方法(可以设置多个过滤方法)
变量修饰符
为了安全起见,框架中提供了很多判断请求类型的方法以供使用:
空控制器和空操作
网站使用中往往出现意想不到的情况,这时我们可以用空控制器和空操作来进行避免错误。
空控制器EmptyController是当URL地址解析不到控制器时会引用的控制器,默认使用index方法。
当找到了控制而未找到操作方法时,我们可以定义__empty方法来作为默认方法。