我正试图通过从一个小树枝文件中调用一个名为MetaController的控制器来呈现元标记。
<head>
{{ render(controller('AppBundle:Meta:seoOptimizedMeta')) }}
问题是,当我试图在控制器中访问$this时,我会得到空白页。所以,当从一个小树枝文件调用时,指向$this的链接似乎丢失了,所以我想知道我应该如何获得$this指针,以便执行我的数据库调用方法等
class MetaController extends Controller {
public function seoOptimizedMetaAction()
{
$request = Request::createFromGlobals();
$repo = $this->getDoctrine()->getRepository('AppBundle:Product');
return new Response('<meta charset="UTF-8" />'); //testing
}
}
为了测试,
class MetaController extends Controller {
public function seoOptimizedMetaAction()
{
$request = Request::createFromGlobals();
print_r($this);
return new Response('<meta charset="UTF-8" />'); //testing
}
}
dev.log包含,
[2015-12-03 14:23:22] request.INFO: Matched route "homepage". {"route_parameters":{"_controller":"AppBundle\Controller\DefaultController::indexAction","_route":"homepage"},"request_uri":"http://localhost/mysnip/web/app_dev.php/"} []
[2015-12-03 14:23:22] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerDebugHandlersListener::configure". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerProfilerListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerDumpListener::configure". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyBundleFrameworkBundleEventListenerSessionListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerFragmentListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerRouterListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerLocaleListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerTranslatorListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentSecurityHttpFirewall::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyBundleAsseticBundleEventListenerRequestListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SymfonyBundleFrameworkBundleDataCollectorRouterDataCollector::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SymfonyComponentHttpKernelDataCollectorRequestDataCollector::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerControllerListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerParamConverterListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerHttpCacheListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerSecurityListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerTemplateListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerDebugHandlersListener::configure". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerProfilerListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerDumpListener::configure". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyBundleFrameworkBundleEventListenerSessionListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerFragmentListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerRouterListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerLocaleListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerTranslatorListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentSecurityHttpFirewall::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.request" to listener "SymfonyBundleAsseticBundleEventListenerRequestListener::onKernelRequest". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SymfonyBundleFrameworkBundleDataCollectorRouterDataCollector::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SymfonyComponentHttpKernelDataCollectorRequestDataCollector::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerControllerListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerParamConverterListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerHttpCacheListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerSecurityListener::onKernelController". [] []
[2015-12-03 14:23:22] event.DEBUG: Notified event "kernel.controller" to listener "SensioBundleFrameworkExtraBundleEventListenerTemplateListener::onKernelController". [] []
还有浏览器中的一个简单的空白页!
- 我发现我的错误的问题是我的代码,获取$this的详细信息可能太多了,trick文件无法接受。因此,应该严格避免print_r或var_dump
- 您还可以通过
$this->get('request_stack')
获取RequestStack
我的问题已经解决了,感谢@Yoshi的建议。