Symfony 3を新たにインストールし、いくつかのAPIルートをセットアップしようとしましたが、コントローラ内のコンテナにアクセスできません。Symfonyコントローラがコンテナにアクセスできない
私のコントローラはContainerAwareTrait
を持つベースのSymfonyコントローラ、から延びているが、私は$this->container->get('service')
をやってみたときに、私はこのエラーを取得しています:
"message": "Call to a member function get() on null",
"class": "Component\\Debug\\Exception\\FatalThrowableError",
"trace": [{
"namespace": "",
"short_class": "",
"class": "",
"type": "",
"function": "",
"file": "src\\Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller.php",
"line": 50,
"args": []
}]
はsymfony自身のコントローラは、コンテナを見つけることができないように、ルックスです私は行方不明のものがありますか?たとえば、あなただけ$this
上の方法get()
を使用して、コンテナにアクセスすることができ、コントローラで
use FOS\RestBundle\Controller\Annotations\Get;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
class UsersController extends Controller
{
/**
* @Get()
*
* @return JsonResponse
*/
public function getUsersAction()
{
$users= $this->get('doctrine.orm.entity_manager')->getRepository('AppBundle:User')->findAll();
return new JsonResponse($users, 200):
}
}
であなたのコントローラ内で呼び出しを追加
これらは有罪線であり、コントローラをサービスとして定義しましたか?または標準のルーティングメカニズムを使用していますか? – Cerad
コントローラを自分でインスタンス化しようとしていますか(たとえば '$ controller = new MyController();')? – ccKep
コントローラコードをお知らせください。 –