2015-06-12 2 views
1

Я пытаюсь использовать findBy() в моем контроллере, и он работает только тогда, когда я использую обычный текст, а не переменный - но оба являются строками, например:Symfony контроллер findBy() не работает с переменной

$repository = $this->getDoctrine()->getRepository('SchlauchBundle:Armatur'); 

$armatur = $entity->getArmatur(); 

$armaturen = $repository->findBy(
    array('nameArmatur' => $entity->getArmatur()) 
); 

var_dump ($ Armatur) выходы:
string(21) "Klemmschalen EN 14420"

но var_dump ($ Armaturen) выходы:
NULL.

Когда я изменяю findBy() - часть к:

$armaturen = $repository->findBy(
    array('nameArmatur' => "Klemmschalen EN 14420") 
); 

это работает - это так смущает меня! Что может быть проблемой в том, что я не могу использовать переменную? Я не понимаю разницы.

В файле сущности он не будет определен (ничего особенного):

/** 
* @var string 
*/ 
private $nameArmatur; 

ответ

0

Попробуйте сделать облицовку (массив ('nameArmatur' => $ entity-> getArmatur()), чтобы увидеть, что поведение

+0

это ничего не меняет - то же самое – ReAlPeNx

0

Я использую следующий стиль, который будет просто работать нормально -!.

$marker = $em->getRepository('SkerpGenericBundle:Marker')->findBy(array('userid' => $userObj->getId())); 

То странно я не столкнуться с такого рода вопрос

+0

, кажется, что есть другая mainproblem - иногда это doens't работа с простым текстом. Я не знаю, в чем проблема: поле из базы данных существует и заполняется именно этой строкой. И почему это работает, а иногда и не тайна. Когда я делаю это как ваш путь, он работает, когда я извлекаю что-то из базы данных, которая связана с контроллером. – ReAlPeNx

+0

вы можете добавить свой объектный код объекта $ entity и дамп сущности объекта в приведенном выше коде. так что это будет очень удобно для отладки. –

+0

Я добавил часть, не уверен, что это именно то, что вам нужно. – ReAlPeNx

0

Кажется, что $entity->getArmatur() может вернуть объект с реализованным методом __toString. Может быть, попробовать что-то вроде:

$armaturen = $repository->findBy(
    array('nameArmatur' => $entity->getArmatur()->__toString()) 
); 
+0

выдает ошибку, потому что это уже строка – ReAlPeNx

Смежные вопросы