2012-06-03 6 views
0

У меня есть следующий запрос Doctrine. Моя база данных - это MySQL.Doctrine Query Result

public static function getLastList($user_id){ 

    $user_id = 123; 

    $q = Doctrine_Query::create() 
      ->from('list l') 
      ->innerJoin('l.listUser lu ') 
      ->where('lu.user_id = ?', $user_id) 
      ->orderBy('e.created ASC') 
      ->limit(1) 
      ->execute(); 

    if ($q == NULL) { 
     print_r('false'); 
    } else { 
     print_r('not false'); 
    } 
} 

У меня нет записи в моей базе данных с user_id = 123. Так что я ожидаю, это «ложь». Но результатом является не «ложный».

1.) Почему?

2.) Как я могу разделить этот конкретный запрос «Да, есть пользователь» или «Нет, нет пользователя»?

Спасибо!

Гуннар

ответ

1

execute() возвращает Doctrine_Collection

Вы можете проверить размер коллекции, позвонив по телефону count()

if ($q->count() == 0) { 
    print_r('false'); 
} else { 
    print_r('not false'); 
} 
+0

спасибо! if (count ($ q) == 0) работает. И спасибо за объяснение !!! – craphunter

+0

И $ q.count() или $ q-> count() нет? Я не уверен, что count ($ q) - это то, что вам действительно нужно. – Ruben

+0

Почему это не то, что мне нужно? – craphunter