Cakephp:重定向到视图中的特定div。

时间:2014-10-27 17:52:40

标签: cakephp redirect hyperlink render helpers

我的导航位于默认布局的标题中。我正在尝试设置一个导航按钮以重定向到主页上的特定div()。 我有这个,这不起作用:

<li> <?php
echo $this->Html->link(
'ABOUT',
array('controller'=>'pages', 'action'=>'display','home'),
array('id' => 'about_page'),
array('escape' => FALSE)); ?> </li>

此页面控制器只接受参数并重定向到特定页面。它看起来像这样:

public function display() {
    $path = func_get_args();
            $page = $path[0];


                $count = count($path);
                if (!$count) {
                        return $this->redirect('/');
                }
                $page = $subpage = $title_for_layout = null;

                if (!empty($path[0])) {
                        $page = $path[0];
                }
                if (!empty($path[1])) {
                        $subpage = $path[1];
                }
                if (!empty($path[$count - 1])) {
                        $title_for_layout = Inflector::humanize($path[$count - 1]);
                }
                $this->set(compact('page', 'subpage', 'title_for_layout'));

                try {
                        $this->render(implode('/', $path));
                } catch (MissingViewException $e) {
                        if (Configure::read('debug')) {
                                throw $e;
                        }
                        throw new NotFoundException();
                }

} 

有人可以帮帮我吗?可能有更容易重定向渲染或重定向方法?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你唯一需要做的就是

<li> <?php
echo $this->Html->link(
'ABOUT',
array('controller'=>'pages', 'action'=>'display','home', '#' => 'about_page'),
array('escape' => FALSE)); ?> </li>

你只需要在数组中添加'#'而不是id。

修改

<li> <?php
echo $this->Html->link(
'ABOUT',
array('controller'=>'pages', 'action'=>'display','home', '#' => 'about_page', 'escape' => FALSE)); ?> </li>

第四个参数是confirmMessage,而不是我在上面写的转义选项。