2013-02-14 10 views
0

У меня есть два связанных модели:Неизвестная ошибка Колум с модельными ассоциациями

  1. Местоположение hasMany Спорт
  2. Спорт belongsTo Место

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

public $order = 'Location.name ASC, Sport.name ASC'; 

Нет проблем. Проблема в том, что при попытке удалить запись с помощью модели Location я получаю неизвестную ошибку столбца в предложении ON, где она использует порядок Спорт модели:

SELECT `Sport`.`id` FROM `scheduler`.`sports` AS `Sport` WHERE `Sport`.`location_id` = 6 ORDER BY `Location`.`name` ASC, `Sport`.`name` ASC 

У меня есть «зависимый» => true в ассоциации LocationMany, поэтому я ожидаю, что он удалит запись Sport, но почему этот оператор выбора не правильно СОХРАНИТЬ таблицу Location. Я имею рекурсивный набор к 1. И если я удалю Location.name в порядке, он отлично работает.

Немного новый для пирога. Использование 2.x

ответ

0

Удалить $ order из Sport - $ order в модели определяет порядок сортировки по умолчанию для модели - не любые связанные модели.

Если вам необходимо заказать запрос, вы делаете это так:

$results = $this->Sport->find('all', array(
    'conditions'=>array(...), 
    'contain'=>array(
     'Location'=>array(
      'order'=>array('Location.name'=>'ASC') 
     ) 
    ), 
    'order'=>array(
     'Sport.name'=>'ASC' 
    ) 
)); 

В качестве альтернативы, оставить $ заказ в вас Sport модели, но это должно быть только:

public $order = array('Sport.name'=>'ASC'); 

и добавить аналогичный модели местоположения:

public $order = array('Location.name'=>'ASC');