让我假装我的视图显示为:
<?php
echo $this->partial( 'site/testimonials/partial.phtml', array() );
?>
<?php
假设我有一个名为“推荐”的表,此视图的目的是仅在另一个视图中显示数据库中的最新推荐。
在此过程中,我将指定数据必须来自何处?我是否将其传递给$ this-&gt; partial,还是有更好更正确的方法将db查询逻辑放在局部视图中?这是一个视图,所以没有逻辑与它相关联,但是如何为它分配“推荐模型”,并在显示此视图时让它自动从数据库中获取数据?
简称
如果我想避免将变量(例如最新的推荐ID)传递给局部视图,我在哪里放置逻辑以获取最新的推荐?
答案 0 :(得分:2)
对于这样的任务,我认为最好是制作视图助手。
内部Module.php
类:
<?php
use Zend\View\Model\ViewModel;
public function getViewHelperConfig()
{
return array(
'most_recent_testimonials' => function($helperPluginManager){
$serviceLocator = $helperPluginManager->getServiceLocator();
$view = new ViewModel();
$view->setTerminal(true);
$view->setTemplate('site/testimonials/partial.phtml');
/*
* There you may get all data you need using $serviceLocator
*/
// inject data into template
$view->setVariables(array(
...
);
// render template
$template_rendered =
$serviceLocator ->get('viewrenderer')
->render($view);
return $template_rendered;
}
);
}
内幕:
<?php echo $this->most_recent_testimonials(); ?>