控制器不呈现模板
Controller not rendering the template
我正在使用 FOS 包在 symfony 中实现 REST API。
我有一个名为 termsController 的控制器,我在其中实现了 REST API 的所有路由。
用于放置、获取、post 和删除 return 数组的路由,但我希望函数 newTermAction(其路由为 /terms/new)呈现模板。
也就是说,这条路线应该指向我进行 post 调用的表格
但是模板没有得到渲染,输出是原始 html 代码
这是函数
public function newTermsAction()
{
return $this->render('default/termForm.html.twig');
}
Config.yml 文件
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
view_response_listener: 'force'
formats:
xml: true
json : true
templating_formats:
html: true
force_redirects:
html: true
failed_validation: HTTP_BAD_REQUEST
default_engine: twig
routing_loader:
default_format: json
我试过用这个,但没用
$view = $this->view()
->setTemplate("TermsBundle:Default:termForm.html.twig");
return $this->handleView($view);
Error : Attempted to call an undefined method named \"view\" of class
尝试这样的事情:
public function newTermsAction(){
$view = $this->view(null, 200)
->setTemplate('default/termForm.html.twig')
;
return $this->handleView($view)
}
您可能需要调整一些配置。
查看 this part of the docs 了解更多详情。
编辑:问题是控制器没有正确继承 FOSRestController,这是正确的方法。
此外,不要忘记在请求末尾添加 html 格式,否则控制器将尝试呈现配置中设置的默认格式,例如:
terms/new.html
我正在使用 FOS 包在 symfony 中实现 REST API。
我有一个名为 termsController 的控制器,我在其中实现了 REST API 的所有路由。
用于放置、获取、post 和删除 return 数组的路由,但我希望函数 newTermAction(其路由为 /terms/new)呈现模板。
也就是说,这条路线应该指向我进行 post 调用的表格
但是模板没有得到渲染,输出是原始 html 代码
这是函数
public function newTermsAction()
{
return $this->render('default/termForm.html.twig');
}
Config.yml 文件
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
view_response_listener: 'force'
formats:
xml: true
json : true
templating_formats:
html: true
force_redirects:
html: true
failed_validation: HTTP_BAD_REQUEST
default_engine: twig
routing_loader:
default_format: json
我试过用这个,但没用
$view = $this->view()
->setTemplate("TermsBundle:Default:termForm.html.twig");
return $this->handleView($view);
Error : Attempted to call an undefined method named \"view\" of class
尝试这样的事情:
public function newTermsAction(){
$view = $this->view(null, 200)
->setTemplate('default/termForm.html.twig')
;
return $this->handleView($view)
}
您可能需要调整一些配置。 查看 this part of the docs 了解更多详情。
编辑:问题是控制器没有正确继承 FOSRestController,这是正确的方法。
此外,不要忘记在请求末尾添加 html 格式,否则控制器将尝试呈现配置中设置的默认格式,例如:
terms/new.html