tags:

views:

39

answers:

2

I'm using cakephp and I want the login view for the controller 'users' to be displayed on the default.ctp for the layout controller. I can I do this?

For example:

<div id="leftNav">
    <div id="login-block" class="block">
        <?php 
            //render users/login here
        ?>
        <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>
+2  A: 

I would make it an element - they are designed for re-usable code chunks that can be used anywhere.

To summarize the functionality, in your view you'd use:

<?php echo $this->element('login'); ?>

and put your "login-block" div login stuff in

/app/views/elements/login.ctp
Dan Heberden
How? The cookbook doesn't exactly explain how elements are created, just that they can be.
Malfist
Well the context of the Element section is views - basically, you can shove a view (.ctp file) in there and get it from any other view. I updated my code with a quick summary.
Dan Heberden
+1  A: 

If you don't use elements for that and you already have the login view you can use it like this

<?php echo $this->requestAction('/users/login'); ?>
al3cs