在布局/视图中显示控制器的一部分

时间:2010-06-24 22:44:06

标签: php cakephp

我正在使用CakePHP,我有一个我编写的组件,它使用一个名为“Users”的组件来处理用户登录,注销,注册等。我想在侧栏中的default.ctp布局上呈现它。我怎么能这样做?

我试过了:

    <div id="leftNav">
        <div id="login-block" class="block">
            <?php echo $this->element('loginblock', array('component' => 'user')); ?>
            <ul>
                <li><a href="/users/login">Login</a></li>
                <li><a href="/users/register">Register</a></li>
                <li><a href="/users/logout">Logout</a></li>
            </ul>
        </div>
    </div>

但这不成功。

1 个答案:

答案 0 :(得分:0)

根据定义,您无法呈现组件。只能呈现MVC体系结构的V部分(或者至少应该),并且组件属于C部分。

将信息从组件传递到视图的最佳方法是set通过控制器传递它,如下所示:

class MyComponent extends Object {

    function initialize(&$controller) {
        $this->controller =& $controller;
    }

    function someMethod() {
        $this->controller->set('user', $someInformation);
    }

}

在视图中,您可以照常输出$user变量。