代码之家  ›  专栏  ›  技术社区  ›  Malfist

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

  •  0
  • Malfist  · 技术社区  · 16 年前

    我使用的是CakePHP,我编写了一个组件,它使用一个名为“用户”的组件来处理用户登录、注销、注册等。我想在默认情况下呈现它。侧边栏中的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 回复  |  直到 16 年前
        1
  •  0
  •   deceze    16 年前

    根据定义,你不能, 提供 一个组件。只能呈现MVC架构的V部分(或者至少 应该 be),组件属于C部分。

    将信息从组件传递到视图的最佳方式是 set 通过控制器进行如下操作:

    class MyComponent extends Object {
    
        function initialize(&$controller) {
            $this->controller =& $controller;
        }
    
        function someMethod() {
            $this->controller->set('user', $someInformation);
        }
    
    }
    

    在视图中,您可以输出 $user 像往常一样变化无常。