проблема состояния содержимого cakephp - PullRequest
2 голосов
/ 27 июля 2011

предполагается, что следующие таблицы:

  • enterprises_locations (location_state_id)
  • users_locations (location_state_id)
  • enterprises_reviews (user_id, business_id).

Как должен выглядеть вызов 'find' в BuseriesReview, чтобы выбрать только те записи, в которых пользовательское состояние ОТЛИЧАЕТСЯ от бизнес-состояния?

$this->BusinessesReview->contain(array('BusinessesProfile'=>array('BusinessesLocation'),'User'=>array('UsersLocation')));
$results = $this->BusinessesReview->find('all', array('conditions'=>array('BusinessesLocation.location_state_id <> UsersLocation.location_state_id')));

выдает ошибку:

MySQL Error: 1054: Unknown column 'BusinessesLocation.location_state_id' 

1 Ответ

0 голосов
/ 27 июля 2011

Вам нужно было бы поместить это в ваш contain вызов

$this->BusinessesReview->contain(
    array(
        'BusinessesProfile' => array(
            'BusinessesLocation' => array(
                'conditions' => array(
                    'BusinessesLocation.location_state_id <> UsersLocation.location_state_id'
                )
            )
         ),
         ...  // rest of the array goes here
     )
  );

Ответ на комментарий: Попробуйте поместить массив User перед массивом BusinessesProfile в вашем contain().Это выстрел в темноте, но я предполагаю, что это может настроить ваш UsersLocation для запроса в первую очередь, предоставляя вам необходимую информацию для запроса BusinessesProfile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...