如何在不同的控制器/模块中对布局进行多个操作?Zend Framework:布局中的多个模块
我尝试这样做:
<div id="login"><?php $x=new User_LoginController; $x->LoginAction() ?>
<div id="news"><?php $x=new Site_NewsController; $x->ShowAction() ?>
如何在不同的控制器/模块中对布局进行多个操作?Zend Framework:布局中的多个模块
我尝试这样做:
<div id="login"><?php $x=new User_LoginController; $x->LoginAction() ?>
<div id="news"><?php $x=new Site_NewsController; $x->ShowAction() ?>
你想实现view helpers,特别是placeholder()查看帮手。
例如呈现在任何一个登录表单或应用程序中的所有页面,我们先从一个placholder在我们的布局或视图脚本的形式:
<!--layout.phtml-->
<div>
<?php echo $this->layout()->login . "\n"?>
</div>
我使用action helper现在从任何控制器或前端控制器插件占位符可以设置
<?php
/**
* Prepares login form for display
*/
class My_Controller_Action_Helper_Login extends Zend_Controller_Action_Helper_Abstract
{
/**
* @return \Application_Form_Login
*/
public function direct()
{
$form = new Application_Form_Login();
//this is the url of the action this form will default too
$form->setAction('/index/login');
return $form;
}
}
:准备形成用于显示
public function preDispatch()
{
$this->_helper->layout()->login = $this->_helper->login();
}
现在登录表单将在显示来自该控制器使用layout.phtml
因为它的布局任何行动。我会让你自己发现插件。
对占位符使用助手通常是实现你想要的东西的首选方式。但是,如果您绝对必须在其他视图中显示某项操作,则可以使用Action view helper,但请注意性能可能会受到影响。
<div id="login">
<?php echo $this->action('login', 'login', 'user'); ?>
</div>
我没有得到你想要什么?
我猜到了什么是可能是你想调用从布局此功能(作用)显示什么是
返回从那里进入布局......
这不是一个好主意。推测你的登录行为显示登录表单?所以你应该在布局中输出这个表单(可能通过。helper)。 – 2013-04-11 18:13:42
在每一个视图中,我有一个Ajax代码,接下来是形式。 我需要网站:新闻,登录/聊天,最新评论,留言。我没有其他的想法.. – Jeremy 2013-04-11 19:02:51