Symfony 2.0 でサービスを作成する際にいくつかの問題がありましたが、null データを設定するサービス以外のすべての回避策を見つけました。
public function logAction($request, $entityManager)
{
$logs = new Logs();
$logs->setRoute = $request->get('_route');
$logs->setController = $request->get('_controller');
$logs->setRequest = json_encode($request->attributes->all());
$logs->setPath = $request->server->get('PATH_INFO');
$logs->setIp = $request->server->get('REMOTE_ADDR');
$em = $entityManager;
$em->persist($logs);
$em->flush();
}
別のコントローラーでサービスを呼び出すときに EntityManager を渡しています。念のため、そのコードを投稿します。
public function pageAction($id = null, Request $request)
{
$log = $this->get('logging');
$log->logAction($request, $this->getDoctrine()->getEntityManager());
return $this->render('AcmeDemoBundle:Demo:viewPage.html.twig', array('name' => $id));
}
公式ドキュメント (ログ バンドル内) に従って services.yml ファイルを作成し、実際の行が挿入されましたが、すべてのフィールドが NULL に設定されています。エンティティ ファイルのセッターの 1 つでサイコロを振ろうとしても、サイコロが動かないので、何かがうまくいかないようです。(だれかが尋ねる前に、ログ サービス ファイルの先頭で EntityManager と Entity ファイルの両方を使用しています)
どんな助けでも大歓迎です。