2010-09-28 4 views
0

Сайт уже построен с лет. Я делаю некоторые изменения. Он имеет контроллеры «Посты» и «Темы». На странице тем отображаются все последние сообщения. Таким образом, это простая находка из таблицы «Сообщений». Извлечение не относится к теме, поскольку мы показываем все «Посты», а не «Тема» конкретных «Сообщений». В контроллере «Темы» App :: import («Модель», «Сообщение»); и $ Posts = new Post; добавлены, и я вызываю действие «getDiscussions» из модели «Почта». Проблема в том, что, хотя я не использую никакого левого соединения с «Темы» и «Пользователи» (которая является еще одной моделью, используемой для отображения сведений о пользователях с сообщением), запрос добавляет левые соединения с двумя таблицами, и это приводит к неправильному результат.Принудительное левое соединение на мой простой внутренний запрос соединения

Пожалуйста, помогите.

Большое спасибо йукти

ответ

1

Я думаю, что это лучше, чтобы попытаться выяснить, почему торт делает это «присоединяется», а не выполнять еще одну вынужденную запроса, так что вы можете захотеть взглянуть на ваши модели ассоциаций в проверьте зависимости. Кроме того, вы можете установить $this->Posts->recursive = -1;, чтобы убедиться, что вы не импортируете нежелательные материалы.

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

$user_record = $this->User->find('first', array(
     'conditions' => array('`Openidurl`.`openid`' => $openid), 
     'joins' => array(
      array(
       'table' => 'openidurls', 
       'alias' => 'Openidurl', 
       'type' => 'LEFT', 
       'foreignKey' => 'user_id', 
       'conditions'=> array('`Openidurl`.`user_id` = `User`.`id`') 
      ) 
     ) 
    ) 
); 
+0

Благодаря Дэмиен, ты прав рекурсивный и «unbindModel» приходит на помощь. $ This-> конкретные темы> unbindModel (массив ('hasMany' => Array ('Post'))); – yukti

+0

Еще одна проблема с pagunation, с которой я столкнулся. Я использую functioin в модели «Посты». Это для получения некоторых записей, основанных на состоянии, и отображения с разбивкой по страницам. Здесь не работает разбиение на страницы, важно ли, чтобы «разбиение на страницы» использовалось только в контроллерах? Пожалуйста, предложите. – yukti

+0

Я еще не знаком с помощником для разбивки на страницы, но я бы предположил «да». Не стесняйтесь открывать новый вопрос для своей проблемы, это может привлечь больше людей. Кроме того, если вы испытываете слишком много проблем с извлечением данных, я боюсь, что вы ошибаетесь в отношении ассоциаций моделей, что со временем усложнит ситуацию. –

Смежные вопросы