在视图内显示另一个控制器的视图
问题描述:
我正在使用cakephp,我希望控制器“用户”的登录视图显示在布局控制器的default.ctp上。我可以这样做吗?在视图内显示另一个控制器的视图
例如:
<div id="leftNav">
<div id="login-block" class="block">
<?php
//render users/login here
?>
<ul>
<li><a href="https://*.com/users/login">Login</a></li>
<li><a href="https://*.com/users/register">Register</a></li>
<li><a href="https://*.com/users/logout">Logout</a></li>
</ul>
</div>
</div>
答
我想使它成为一个element - 它们被设计为可以在任何地方使用可重复使用的代码块。
总结功能,在你看来,你会使用:
<?php echo $this->element('login'); ?>
,并把你的“登录块” DIV登录的东西,在
/app/views/elements/login.ctp
答
如果不使用元素为此,你已经有登录视图,你可以这样使用它
<?php echo $this->requestAction('/users/login'); ?>
如何?食谱并没有完全解释如何创建元素,只是他们可以。 – Malfist 2010-06-25 14:34:34
那么元素部分的上下文就是视图 - 基本上,您可以在其中推送一个视图(.ctp文件)并从任何其他视图中获取它。我用一个简短的总结更新了我的代码。 – 2010-06-25 14:36:07