首页 »PHP教程 » 点击这里:CakePHP应用开发:第 4章 控制器——编写应用的控制逻辑(5.转跳) »正文
点击这里:CakePHP应用开发:第 4章 控制器——编写应用的控制逻辑(5.转跳)
来源: 发布时间:星期五, 2009年9月25日 浏览:30次 评论:0
在动态网页应用中  转跳通常都是用来控制应用  执行流程  将用户从  个页面转移到另外  个页面  如果没有转跳  话  网页应用就会变成没有流动性   堆稀稀拉拉  页面  使用PHP编写  网页应用中  PHP   header()通常都是用将用户从  个页面转跳到另外  个页面  而CakePHP提供给了  个内置  控制器思路方法 redirect()  用来它来将  个用户从  个操作(action)转跳到另外  个操作上去  现在  我们不多费口舌  我们直接看看如何在CakePHP 中实 现转跳! 动手时间:从  个操作转跳到另外  个操作 1  修改Users控制器(/app/controllers/users_controller.php)  UsersController extends AppController { var $name = 'Users'; var $uses = .gif' /> ; function index {
(!empty($this->data)) { $this->redirect( .gif' />('controller'=>'users', 'action'=>'welcome', urlencode($this->data['name']))); } } function welcome( $name = null ) {
(empty($name)) { $this->Session-> Flash('Please provide your name!', true); $this->redirect( .gif' />('controller'=>'users', 'action'=>'index')); } $this-> ('name', urldecode($name)); } } 2  创建  个welcome.ctp  文件  文件存放位置为/app/views/users/  视图文件中  代码如下  <h2>Welcome, <?php echo $name; ?></h2> 3  在浏览器中输入下面这个链接 http://localhost/applogic/users/ 如何回事? 在Users控制器  index操作中  我们修改了  代码段里面  代码  原先它是输出表单提交  name值  现在我们是将用户转跳到另外  个操作  代码如下 $this->redirect( .gif' />('controller'=>'users', 'action'=>'welcome', urlencode($this->data['name']))); redicrect操作用起来很简单  第  个参数是  个关联   我们通过controller键和 action键指定了我们要转跳  控制器和操作名称  另外可以给  添加  些新   元素  因此我们可以给转跳请求附加  个参数  但表单提交时  我们将用户转跳了Users控制器  welcome操作  我们在URL中添加了用户  名称  作为请求   个参数  我们可以从控制器  属性$data中获取 name值  然后使用PHP  urlencode  让URL变得更为友好  [ redirect默认  是在执行完该语句后直接退出  因此redirect后面  代码不会执行  但是我们可以在  redirect  时候将第 3个参数设置设置为真(true)  来避免这种强制退出  情形  ] 现在  让我们瞧  瞧welcome操作  这个操作有  个可选  $name参数  在这个操作里  我们首先检查请求是不是附带有任何参数  如果没有参数  话  我们会发出  个提示信息  然后使用redirect思路方法将用户转跳回Users控制器  index操作  (empty($name)) { $this->Session-> Flash('Please provide your name!'); $this->redirect( .gif' />('action'=>'index')); } 在上面  我们  redirect思路方法时  我们只是在参数中设置了操作  键  但没有设置控制  键  但控制器  键没有设置时  redirect思路方法将会转跳到当前控制器  对应操作上来  如果请求参数$name提供  有  话  Cake会忽略掉  代码段里面  代码  然后将从网址(URL)中解析而得  name作为变量$name传送给视图  $this-> ('name', urldecode($name)); 在视图文件中  我们只是简单  在名字前面显示  个“欢迎”来提示用户  如果我们现在http://localhost/applogic/users/这个链接  然后输入  个名字  它应该会将我们转跳到欢迎操作上来  给我们显示  个欢迎信息
相关文章
读者评论
发表评论
|
|