Не равно условие не работает Symfony2

Я пытаюсь создать пользовательский искатель в классе репозитория. И условие где найти сообщения, созданные не текущим пользователем. Но я все еще получаю все сообщения. Вот код:

public function selectRelatedTrips($assoc, $profileId)
{

$params = array();
$query = $this
->getEntityManager()
->createQueryBuilder()
->select('t')
->from('VputiTripBundle:Trip', 't')
->where('t.profile != :profile');
$params['profile']=$profileId;
foreach ($assoc as $k => $v) {
$query->orWhere('t.startCity = :param' . $k);
$query->orWhere('t.targetCity = :param' . $k);
$params['param' . $k] = $v;
}

return $query->setParameters($params)
->setMaxResults(20)
->orderBy('t.id', 'desc')
->getQuery()
->getResult();
}

Что я делаю не так?

0

Решение

Если t.profile это сущность, вы должны сравнить, как это:

->where('IDENTITY(t.profile) != :profile');
1

Другие решения

Вы не должны сравнивать с Id, вы путаете ID и сущность таким образом. Я предпочитаю сравнивать всю сущность и делегировать ORM полное сравнение.

Вот как я бы исправил ваш код, я бы изменил только эту строку:

    $params['profile'] = $profile;
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector