0

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 ファイルの両方を使用しています)

どんな助けでも大歓迎です。

4

1 に答える 1

2
$logs->setRoute = $request->get('_route');

する必要があります:

$logs->setRoute($request->get('_route'));

D2の場合、すべてのアクセサーはメソッドである必要があります。

于 2012-08-07T14:22:49.453 に答える