Cakephp 模型关联的未知列错误

Cakephp 模型关联的未知列错误,cakephp,Cakephp,我有两个相关模型: 这里有很多运动项目 运动属于位置 在我的运动车型中,我使用以下顺序: public $order = 'Location.name ASC, Sport.name ASC'; 没问题。问题是,当我试图通过位置模型删除记录时,我在ON子句中得到一个未知列错误,它使用的是运动模型顺序: SELECT `Sport`.`id` FROM `scheduler`.`sports` AS `Sport` WHERE `Sport`.`location_id` = 6 ORDER BY

我有两个相关模型:

  • 这里有很多运动项目
  • 运动属于位置
  • 在我的运动车型中,我使用以下顺序:

    public $order = 'Location.name ASC, Sport.name ASC';
    
    没问题。问题是,当我试图通过位置模型删除记录时,我在ON子句中得到一个未知列错误,它使用的是运动模型顺序:

    SELECT `Sport`.`id` FROM `scheduler`.`sports` AS `Sport` WHERE `Sport`.`location_id` = 6 ORDER BY `Location`.`name` ASC, `Sport`.`name` ASC
    
    我在Location hasMany关联中有'dependent'=>true,因此我希望它删除运动记录,但是为什么select语句没有正确地加入Location表呢。我将递归设置为1。如果我按顺序删除Location.name,它会正常工作


    cakePHP有点新。使用2.x从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');