码迷,mamicode.com
首页 > 其他好文 > 详细

控制器[2]

时间:2015-06-17 00:31:08      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

三. 跳转和重定向

ThinkPHP 在操作数据库时,需要跳转和重定向页面。ThinkPHP 提供了一组方法来解
决了这个问题。

在 WeiBo/Home/Controller/UserController.class.php 中的代码如下:


 1 <?php
 2 
 3 namespace Home\Controller;
 4 use Think\Controller;
 5 
 6 class UserController extends Controller {
 7         public function index() {
 8             $flag=ture;
 9             if($flag) {
10                 //会跳转到:http://localhost/demo39/User/all
11                  $this->success(‘跳转成功‘,‘./User/all‘);
12              }else {
13                  //会跳转到本页的上一页
14                  $this->error(‘跳转失败‘);
15              }
16         }    
17         public function all() {
18             echo "这里是跳转的页面";
19         }
20 }

在浏览器的地址栏输入: http://localhost/demo39/User/ 后出现如下图:

技术分享

3秒过后:

技术分享

注意:在 $this->error(‘跳转失败‘); 中发现跳转失败后,会跳转到前一个页面,此时,如果前一个页面是 www.baidu.com ,

然后在上面的代码中的 $flag=false; 然后在浏览器的地址栏中输入 http://localhost/demo39/User/ ,然后它跳转到的

页面是 www.baidu.com 。

PS:success()方法和 error()方法,第一个参数是提示信息、第二个跳转的地址、
第三个跳转时间。默认情况下 success()方法是 1 秒,error()方法是 3 秒。

1 //设置5秒
2 $this->success(‘新增成功!‘, ‘list‘, 5);

 

success()方法和 error()方法,跳转的时候就对应了相应的模版,默认如下:

1 //默认错误跳转对应的模板文件
2 ‘TMPL_ACTION_ERROR‘ =>THINK_PATH .‘Tpl/dispatch_jump.tpl‘,
3 //默认成功跳转对应的模板文件
4 ‘TMPL_ACTION_SUCCESS‘=>THINK_PATH.‘Tpl/dispatch_jump.tpl‘,

 Tpl/dispatch_jump.tpl 的路径为: WeiBo/ThinkPHP/Tpl/dispatch_jump.tpl 

自定义成功和错误提示模版页面

在 WeiBo/Common/Conf/config.php 中配置:

1 ‘TMPL_ACTION_SUCCESS‘=>‘Public/success‘,
2 ‘TMPL_ACTION_ERROR‘=>‘Public/error‘,

此时,引用的 Public/success 文件在 WeiBo/Home/View/Public/success.html 下;

这时 success.html 里的跳转函数以及定时函数可参考 dispatch_jump.tpl 中的代码来编写;

 

对于自定义的提示模版,ThinkPHP 提供了一组变量可供使用。

变量 含义
$msgTitle 操作标题
$message 页面提示信息
$status 操作状态 1 表示成功 0 表示失败
$waitSecond  跳转等待时间,单位为秒
$jumpUrl  跳转页面地址

 

 

//模版中使用提示变量
操作标题:{$msgTitle}<br />
页面提示信息:{$message}<br />
操作状态:{$status}<br />
跳转等待时间:{$waitSecond}<br />
页面跳转地址:{$jumpUrl}

 

PS:如果对于数据库操作,采用了 Ajax 方式,那么 success()和 error()会自动
ajaxReturn()方法返回数据提供调用。

ThinkPHP 还单独提供了重定向方法 redirect(),参数和 U()方法一样。这个方法使
用的是 URL 规则。

1 $this->redirect(‘User/test‘,  array(‘id‘=>5), 5, ‘页面跳转中...‘);

如果只是想纯粹的 URL 跳转,不去使用 URL 规则,那么直接使用 redirect()函数。

1 redirect(‘http://www.baidu.com‘, 5, ‘页面跳转中...‘);

 

四. 输入变量

 

控制器[2]

标签:

原文地址:http://www.cnblogs.com/jacson/p/4582126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!