2015-11-18 1 views
1

Мне нужно знать, как это сделать. Я делаю выбор подзапроса с моделями phalcon?Phalcon - Как сделать подзаголовок SELECT IN с моделями Phalcon?

например, я хочу выбрать всех пользователей, которые меня рассматривали, они хранятся в таблице UserView с идентификаторами столбцов 'user', 'user_from', 'user_to' (сопоставлено пользовательской таблицей user_id либо user_from, либо user_to)

поэтому я хочу, чтобы выбрать всех пользователей, которые имеет user_to как с текущим пользователем, и группа по user_to убедитесь, что я только получить один записал, я написал ниже функции, чтобы сделать это, но есть основные две проблемы

1. Как выполнить подзапрос с использованием моделей фалкона

2. Является ли моя логика правильно на изнаночную-конце БД (как я не могу видеть реальный выполненный запрос)

public function getUserWithViewedMe($limit=1000000){ 
     return User::query() 
      ->rightJoin("XYZ\Models\UsersView") 
      ->andWhere(" XYZ\Models\UsersView.user_from IN :user_id: ", 
           array('user_id' => $this->user->user_id)) 
      ->group('user_id') 
      ->order("XYZ\Models\UsersView.id DESC ") 
      ->limit($limit) 
      ->execute(); 
    } 

Это возвращает пустой набор ...

ответ

1

До сих пор не представляется возможным для моделирования подзапросов в Phalcon. Существует также topic в соответствии со стандартными вопросами реализации.

Запросить параметры в соответствии с другой таблицей, here is an answer.

Для запроса IN вы можете использовать QueryBuilder

$this->modelsManager->createBuilder() 
    // ... 
    ->inWhere('column', $array);