有没有一种方法可以制作模板但不在盘子中渲染它 php
is there a way to make template but not render it in plates php
在 plates php 中有没有一种方法可以让我在控制器中制作模板,但使用另一个控制器渲染它。假设我有两个控制器。 HeaderController 和一个 SearchController。
搜索控制器
class Search extends \system\core\BaseController
{
public function Index()
{
$data['text_search'] = 'Search..';
// This $this->template->render down below is what I don't want now
// okay asign the data but do not display the template yet
echo $this->template->render('common/search', $data);
}
}
虚拟 SearchController 应将 $data 分配给模板 search.tpl 而不是 render/display 模板。
这是我调用上述控制器的地方
HeaderController
class HeaderController extends \system\core\BaseController
{
public function Index()
{
// Some codes
// Call / load the SearchController and asign it to $data['search']
$data['search'] = $this->load->controller('common/SearchController');
// and then pass all $data and render/display it.
echo $this->template->render('common/header', $data);
}
}
有办法吗?
问题实际上是因为您在 class 中使用了 echo
。如果您的 "controllers"(嗯,它们实际上似乎是视图和控制器的组合)是 return
内容或 Response
class 实例,那么您的问题应该消失.
在 plates php 中有没有一种方法可以让我在控制器中制作模板,但使用另一个控制器渲染它。假设我有两个控制器。 HeaderController 和一个 SearchController。
搜索控制器
class Search extends \system\core\BaseController
{
public function Index()
{
$data['text_search'] = 'Search..';
// This $this->template->render down below is what I don't want now
// okay asign the data but do not display the template yet
echo $this->template->render('common/search', $data);
}
}
虚拟 SearchController 应将 $data 分配给模板 search.tpl 而不是 render/display 模板。
这是我调用上述控制器的地方
HeaderController
class HeaderController extends \system\core\BaseController
{
public function Index()
{
// Some codes
// Call / load the SearchController and asign it to $data['search']
$data['search'] = $this->load->controller('common/SearchController');
// and then pass all $data and render/display it.
echo $this->template->render('common/header', $data);
}
}
有办法吗?
问题实际上是因为您在 class 中使用了 echo
。如果您的 "controllers"(嗯,它们实际上似乎是视图和控制器的组合)是 return
内容或 Response
class 实例,那么您的问题应该消失.