2012-08-07 32 views
0

我在Symfony 2.0中創建服務時遇到了幾個問題,但是找到了除了服務設置空數據之外的其他所有解決方法。Symfony服務設置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文件(在Log Bundle中)並插入實際行,但所有字段都設置爲NULL。如果我試圖在實體文件中的其中一個設置器中死一個死,它不會死,所以它似乎有些東西沒有做到。 (我有兩個EntityManager和Entity文件在任何人請求之前在日誌服務文件的頂部使用)

任何幫助將不勝感激。

回答

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

應該是:

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

對於D2的所有訪問者必須的方法。

+0

哇我現在覺得自己像一個白癡,只是有問題後,我有一種感覺,我忽略了一些瘋狂的簡單。謝謝! – charliepage88 2012-08-07 15:15:15

+0

您應該考慮使用依賴注入將請求和實體管理器直接傳遞給您的日誌記錄類。 – Cerad 2012-08-07 15:45:34

+0

好的,我會看看它。我是這樣做的,因爲更多的是「得到這個工作」,並且無法在我所做的服務中聲明。但我肯定會那樣做,因爲我不喜歡它現在的樣子。再次感謝! – charliepage88 2012-08-07 17:20:08