Отображение части контроллера в макете / представлении - PullRequest
0 голосов
/ 25 июня 2010

Я использую CakePHP, и у меня есть компонент, который я написал и который использует компонент «Пользователи» для обработки входа пользователей, выхода из системы, регистрации и т. Д. Я хотел бы отобразить это на макете 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 голосов
/ 25 июня 2010

Вы не можете по определению визуализировать компонент. Только V часть архитектуры MVC может быть отображена (или, по крайней мере, должна быть), а компоненты принадлежат части C.

Лучший способ передать информацию из компонента в представление - это set передать его через контроллер следующим образом:

class MyComponent extends Object {

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

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

}

И в представлении вы можете вывести переменную $user как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...