试图在类(Symfony)上调用方法“getDoctrine”
我正在尝试创建一个小应用程序,使用symfony / doctrine通过id从表中读取记录。 我的步骤:
3)创建GS OrderBundle Entity CustomerRepository.php(我不知道为什么我还需要它,它是自动生成的)。 源代码:
namespace GSOrderBundleEntity;
use DoctrineORMEntityRepository;
class CustomerRepository extends EntityRepository
{
}
4)修改的CustomerController.php:
<?php
namespace GSOrderBundleController;
use SymfonyComponentHttpFoundationResponse;
use GSOrderBundleEntityCustomer;
use DoctrineORMEntityManager;
class CustomerController
{
public function indexAction($id)
{
$customer = $this->getDoctrine()->getRepository('GSOrderBundle:Customer')->find($id);
return new Response(
'<html><body>Number: '.$id.'</body></html>'
);
}
}
并得到以下错误:
试图在类“GS OrderBundle Controller CustomerController”上调用方法“getDoctrine”。
500内部服务器错误 - UndefinedMethodException
堆栈跟踪
在第13行的src / GS / OrderBundle / Controller / CustomerController.php中 - public function indexAction($ id){$ customer = $ this-> getDoctrine() - > getRepository('GSOrderBundle:Customer') - > find($ id ); 返回新的回复('Number:'。$ id。''); 日志 -
1错误INFO - 匹配的路由“customer”(参数:“_controller”:“GS OrderBundle Controller CustomerController :: indexAction”,“id”:“1784”,“_route”:“customer”)DEBUG-通知事件“ kernel.request“监听器”Symfony Component HttpKernel EventListener DebugHandlersListener :: configure“。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener ProfilerListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给侦听器“Symfony Component HttpKernel EventListener DumpListener :: configure”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Bundle FrameworkBundle EventListener SessionListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener FragmentListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener RouterListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener LocaleListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener TranslatorListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给侦听器“Symfony Component Security Http Firewall :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Bundle AsseticBundle EventListener RequestListener :: onKernelRequest”。 调试 - 通知事件“kernel.controller”监听器“Symfony Bundle FrameworkBundle DataCollector RouterDataCollector :: onKernelController”。 DEBUG - 通知事件“kernel.controller”给侦听器“Acme DemoBundle EventListener ControllerListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”监听器“Symfony Component HttpKernel DataCollector RequestDataCollector :: onKernelController”。 DEBUG - 通知事件“kernel.controller”为侦听器“Sensio Bundle FrameworkExtraBundle EventListener ControllerListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”以监听器“Sensio Bundle FrameworkExtraBundle EventListener ParamConverterListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”为侦听器“Sensio Bundle FrameworkExtraBundle EventListener HttpCacheListener :: onKernelController”。 调试 - 通知事件“kernel.controller”监听器“Sensio Bundle FrameworkExtraBundle EventListener SecurityListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”为侦听器“Sensio Bundle FrameworkExtraBundle EventListener TemplateListener :: onKernelController”。 CRITICAL - 未捕获的PHP异常Symfony Component Debug Exception UndefinedMethodException:“试图在类”GS OrderBundle Controller CustomerController“上调用方法”getDoctrine“。” 在C: xampp htdocs goodstuff src GS OrderBundle Controller CustomerController.php第13行调试 - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener DebugHandlersListener :: configure”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener ProfilerListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给侦听器“Symfony Component HttpKernel EventListener DumpListener :: configure”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Bundle FrameworkBundle EventListener SessionListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener FragmentListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener RouterListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener LocaleListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Component HttpKernel EventListener TranslatorListener :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给侦听器“Symfony Component Security Http Firewall :: onKernelRequest”。 DEBUG - 通知事件“kernel.request”给监听器“Symfony Bundle AsseticBundle EventListener RequestListener :: onKernelRequest”。 调试 - 通知事件“kernel.controller”监听器“Symfony Bundle FrameworkBundle DataCollector RouterDataCollector :: onKernelController”。 DEBUG - 通知事件“kernel.controller”给侦听器“Acme DemoBundle EventListener ControllerListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”监听器“Symfony Component HttpKernel DataCollector RequestDataCollector :: onKernelController”。 DEBUG - 通知事件“kernel.controller”为侦听器“Sensio Bundle FrameworkExtraBundle EventListener ControllerListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”以监听器“Sensio Bundle FrameworkExtraBundle EventListener ParamConverterListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”为侦听器“Sensio Bundle FrameworkExtraBundle EventListener HttpCacheListener :: onKernelController”。 调试 - 通知事件“kernel.controller”监听器“Sensio Bundle FrameworkExtraBundle EventListener SecurityListener :: onKernelController”。 DEBUG - 通知事件“kernel.controller”为侦听器“Sensio Bundle FrameworkExtraBundle EventListener TemplateListener :: onKernelController”。
您需要扩展Symfony的Controller
类以能够使用getDoctrine()
方法。
所以:
use SymfonyBundleFrameworkBundleControllerController;
class CustomerController extends Controller
{
public function indexAction($id)
{
$customer = $this->getDoctrine()->getRepository('GSOrderBundle:Customer')->find($id);
return new Response(
'<html><body>Number: '.$id.'</body></html>'
);
}
}
(您也可以将控制器定义为服务,但这是更复杂的解决方案)
链接地址: http://www.djcxy.com/p/53997.html上一篇: Attempted to call method "getDoctrine" on class (Symfony)