我有两个相关的模型:
在我的运动模型中,我正在使用此订单:
public $order = 'Location.name ASC, Sport.name ASC';
没问题。问题是当我尝试通过Location模型删除记录时,我在ON子句中收到一个Unknown列错误,它使用Sport模型顺序:
SELECT `Sport`.`id` FROM `scheduler`.`sports` AS `Sport` WHERE `Sport`.`location_id` = 6 ORDER BY `Location`.`name` ASC, `Sport`.`name` ASC
我有'依赖'=>在位置hasMany关联中为true,所以我希望它删除Sport记录,但为什么select语句没有正确地加入Location表。我有递归设置为1.如果我按顺序删除Location.name,它工作正常。
CakePHP有点新鲜。使用2.x
答案 0 :(得分:0)
从Sport中删除$ order - 模型中的$ order定义模型的默认排序顺序 - 而不是任何相关模型。
如果您需要订购查询,请按以下方式执行:
$results = $this->Sport->find('all', array(
'conditions'=>array(...),
'contain'=>array(
'Location'=>array(
'order'=>array('Location.name'=>'ASC')
)
),
'order'=>array(
'Sport.name'=>'ASC'
)
));
或者,在您的体育模型中保留$ order,但它应该只是:
public $order = array('Sport.name'=>'ASC');
并在位置模型中添加类似的一个:
public $order = array('Location.name'=>'ASC');