Я пытаюсь настроить Symfony3 с MongoDB, следуя этим учебным пособием: Symfony3 DocsSymfony3 MongoDB ошибка службы
Я последовал за все насквозь и после Упорство объекта в MongoDB главе я перезарядил мою страницу и получить эту ошибку:
Error: Call to a member function get() on null
Если я понимаю, это означает, что метод get не может найти заявленную услугу?
мой код контроллера:
<?php
namespace Cambio\CambioBundle\Controller;
use Cambio\CambioBundle\Document\Product;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class AuthenticationController extends Controller
{
public function loginAction()
{
$product = new Product();
$product->setName('A Foo Bar');
$product->setPrice('19.99');
$dm = $this->get('doctrine_mongodb')->getManager();
$dm->persist($product);
$dm->flush();
return new Response('Created product id '.$product->getId());
}
}
и это мой config.yml:
# MongoDB Configuration
doctrine_mongodb:
connections:
default:
server: mongodb://localhost:27017
options: {}
default_database: test_database
document_managers:
default:
auto_mapping: true
Не тихий уверен, что это проблема и как я могу это исправить.
Дополнительные Эррол Журналы:
in src/Cambio/CambioBundle/Controller/AuthenticationController.php at line 18 -
$product->setPrice('19.99');
// $m = $this->container->get('doctrine_mongodb.odm.default_connection');
$dm = $this->container->get('doctrine_mongodb.odm.default_connection')->getManager();
$dm->persist($product);
$dm->flush();
и Бревенчатые:
CRITICAL - Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalErrorException: "Error: Call to a member function get() on null" at /Users/Tomazi/Dev/SymfMongo/src/Cambio/CambioBundle/Controller/AuthenticationController.php line 18
Больше редактирует:
ИТАК я иду эту работу ранее мой контроллер был определен как сервис и этот набор вверх сделал не работайте, как только я добавлю новый контроллер и не объявляю его как услугу, каждый магически работает:
routing.yml:
cambio_test:
path: /test
defaults: { _controller: CambioBundle:Default:index }
cambio_homepage:
path: /
defaults: { _controller: cambio.authentication.controller:loginAction }
services.xml:
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<!-- Controller -->
<service id="cambio.authentication.controller"
class="Cambio\CambioBundle\Controller\AuthenticationController">
</service>
</services>
</container>
и контроллер по умолчанию имеет тот же код инициализации него любая идея, почему это не работает, когда контролеров decleared как сервис, но это работает, когда контроллер isynt определяется как один ...?
Необходимо найти файлы журнала, чтобы узнать, где именно происходит эта ошибка. – michaJlS
Просьба указать tracelog исключения. В фрагменте кода есть только одна функция 'get', и, очевидно,' $ this' не 'null'. –
Эй Надеюсь, мое редактирование может помочь вам, ребята, поближе посмотреть, что происходит – John