专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » 点击这里:CakePHP应用开发:第 4章 控制器——编写应用的控制逻辑(5.转跳) »正文

点击这里:CakePHP应用开发:第 4章 控制器——编写应用的控制逻辑(5.转跳)

来源: 发布时间:星期五, 2009年9月25日 浏览:30次 评论:0
  在动态网页应用中转跳通常都是用来控制应用执行流程将用户从个页面转移到另外个页面如果没有转跳网页应用就会变成没有流动性堆稀稀拉拉页面使用PHP编写网页应用中PHPheader()通常都是用将用户从个页面转跳到另外个页面而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值然后使用PHPurlencode让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/这个链接然后输入个名字它应该会将我们转跳到欢迎操作上来给我们显示个欢迎信息

标签:点击这里
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: