我有一個人(員工)搜索應該返回人名單,姓氏,出生日期和其他一些參數。對於日期參數(如出生日期),每個參數的搜索都可以正常工作。我的控制器代碼是這樣的:Symfony2可捕獲的致命錯誤:DateTime類的對象無法轉換爲字符串
$aWorker = new Worker();
$searchWorkerForm = $this->createFormBuilder($aWorker)
->add('omang', 'text', array('required' => false))
->add('workerName', 'text', array('required' => false))
->add('workerSurname', 'text', array('required' => false))
->add('birthDay', 'date',
array('required' => false, 'years' => range(1950, 2020)))
->add('dateOfEmployment', 'date', array('required' => false))
->add('search', 'submit')
->getForm();
//Handle Request
if ($request->getMethod() == 'POST')
$searchWorkerForm->handleRequest($request);
$aWorkerList = $this->getDoctrine()
->getRepository('OsdRetireBundle:Worker')
->findByPersonDetails($aWorker->getOmang(),
$aWorker->getWorkerName(),
$aWorker->getWorkerSurname(),
$aWorker->getBirthDay(),
$aWorker->getDateOfEmployment());
//...
的findByPersonDetails功能是這樣的:
public function findByPersonDetails($omang, $WorkerName,
$workerSurname, $birthDay, $dateOfEmployment){
$qqq = $this->getEntityManager()
->createQuery('SELECT w FROM OsdRetireBundle:Worker w
WHERE w.omang LIKE :omang
AND w.workerName LIKE :WorkerName
AND w.workerSurname LIKE :workerSurname
AND w.birthDay LIKE :birthDay
AND w.dateOfEmployment LIKE :dateOfEmployment')
->setParameter('omang', '%'.$omang.'%')
->setParameter('WorkerName', '%'.$WorkerName.'%')
->setParameter('workerSurname', '%'.$workerSurname.'%')
->setParameter('birthDay', '%'.$birthDay.'%')
->setParameter('dateOfEmployment', '%'.$dateOfEmployment.'%')
->getResult();
return $qqq;
}
的錯誤是:
Catchable Fatal Error: Object of class DateTime could not be converted to string in /var/www/Org/src/Osd/RetireBundle/Entity/WorkerRepository.php line 27
500 Internal Server Error - ContextErrorException
我應該用我自己的函數將日期轉換字符串?如果是的話我應該在哪裏做到這一點,使其可重複使用?任何工作示例? 我認爲教義能夠自動做到這一點。 Thak you in advenced。
[如何在Twig模板中渲染DateTime對象]的可能重複(http://stackoverflow.com/questions/8318914/how-to-render-a-datetime-object-in-a-twig-template ) – javidazac