我不想扩展标准控制器,而是想将 Twig 注入我的一个类中。
控制器:
namespace Project\SomeBundle\Controller;
use Twig_Environment as Environment;
class SomeController
{
private $twig;
public function __construct( Environment $twig )
{
$this->twig = $twig;
}
public function indexAction()
{
return $this->twig->render(
'SomeBundle::template.html.twig', array()
);
}
}
然后在services.yml
我有以下内容:
project.controller.some:
class: Project\SomeBundle\Controller\SomeController
arguments: [ @twig ]
我得到的错误是:
SomeController::__construct() 必须是 Twig_Environment 的实例,没有给出
但我@twig
通过config
. 我看不出我做错了什么。
编辑:
添加正确的代码 - 这就是解决问题的原因:
// in `routing.yml` refer to the service you defined in `services.yml`
project.controller.some
project_website_home:
pattern: /
defaults: { _controller: project.controller.some:index }