$this在从trick文件调用时无法在控制器中访问



我正试图通过从一个小树枝文件中调用一个名为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". [] []

还有浏览器中的一个简单的空白页!

  1. 我发现我的错误的问题是我的代码,获取$this的详细信息可能太多了,trick文件无法接受。因此,应该严格避免print_r或var_dump
  2. 您还可以通过$this->get('request_stack')获取RequestStack

我的问题已经解决了,感谢@Yoshi的建议。

最新更新