$qb = $this->em->createQueryBuilder()
->select("p.$input")
->from('AppBundle:Profile', 'p')
->where("p.$input LIKE :value")
->setParameter('value', '%'.$value.'%')
->setMaxResults(5);
$results = $qb->getQuery()->execute();
$response['results'] = $results;
有没有办法使用setParameter设置$input
?
答案 0 :(得分:0)
我是这样做的:
class EntityHelper{
/**
* @param Object $entity
*
* @return array
*/
public static function entityToArray($entity) {
$className = "\0" . get_class($entity) . "\0";
$entityAsArray = (array)$entity;
$retArray = array();
foreach ($entityAsArray as $key => $val) {
$retArray[str_replace($className, '', $key)] = $val;
}
return $retArray;
}
/**
* @param Object $entity
* @param string $parameter
*
* @return boolean
*/
public static function checkEntityHasParameter($entity, $parameter) {
return array_key_exists($parameter, self::entityToArray($entity));
}
}
使用 checkEntityHasParameter 静态方法检查您的表格中是否会出现该字段。
警告!它仅适用于标准类型字段,有时也适用于使用映射。