Php Symfony 1.4将变量从操作传递到视图
我是Symfony 1.4的新手,我正在加入一个需要创建新仪表板的项目 我在analysis/actions/actions.class.php中创建了以下控制器Php Symfony 1.4将变量从操作传递到视图,php,symfony-1.4,Php,Symfony 1.4,我是Symfony 1.4的新手,我正在加入一个需要创建新仪表板的项目 我在analysis/actions/actions.class.php中创建了以下控制器 public function executeTestDashboard(sfWebRequest $request){ $foo = "FooBar"; $this->foo = "ThisFooBar"; return $this->renderPartial('analyse/testDas
public function executeTestDashboard(sfWebRequest $request){
$foo = "FooBar";
$this->foo = "ThisFooBar";
return $this->renderPartial('analyse/testDashboard', array('foo' => $foo);
}
和analysis/templates/_testDashboard.php视图,它是home/templates/indexSuccess.php中包含的一部分:
<div class="testDashboard">
<h1>TEST</h1>
<?php var_dump($foo);?>
</div>
试验
它不起作用,$foo既不是“FooBar”也不是“ThisFooBar”,而是“null”。我应该如何进行,以使其工作?(或者甚至检查我的executeTestDashboard控制器是否已处理?您应该阅读Symfony 1.4中的
部分和组件。如果使用include\u partial()
在模板中包含部分,则仅呈现部分,而不执行控制器代码
如果您需要比简单渲染部分更具逻辑性的内容,则应使用类似以下内容的组件:
在analysis/actions/componetes.class.php中
public function executeTestDashboard(){
$this->foo = "FooBar: ".$this->getVar('someVar');
}
<div class="myDashboard><?php echo $foo ?></div>
在analysis/templates/_testDashboard.php
public function executeTestDashboard(){
$this->foo = "FooBar: ".$this->getVar('someVar');
}
<div class="myDashboard><?php echo $foo ?></div>
这里有几个例子可以更好地解释这一点:
// $foo is passed in TestDashboardSuccess.php, which is the default view rendered.
public function executeTestDashboard(sfWebRequest $request)
{
$this->foo = "ThisFooBar";
}
// Different template indexSuccess.php is rendered. $foo is passed to indexSuccess.php
public function executeTestDashboard(sfWebRequest $request)
{
$this->foo = "ThisFooBar";
$this->setTemplate('index');
}
// Will return/render a partial, $foo is passed to _testDashboard.php. This
// method is often used with ajax calls that just need to return a snippet of code
public function executeTestDashboard(sfWebRequest $request)
{
$foo = 'ThisFooBar';
return $this->renderPartial('analyse/testDashboard', array('foo' => $foo));
}