【问题标题】:Unknown colum error with model associations模型关联的未知列错误
【发布时间】:2013-02-14 01:42:08
【问题描述】:

我有两个关联的模型:

  1. 位置有很多运动项目
  2. 运动属于位置

在我的运动模型中,我使用这个顺序:

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

那里没问题。问题是,当我尝试通过 Location 模型删除记录时,我在 ON 子句中收到 Unknown column 错误,它使用的是 Sport 模型顺序:

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,所以我希望它删除 Sport 记录,但是为什么该 select 语句没有正确加入 Location 表。我将递归设置为 1。如果我按顺序删除 Location.name,它可以正常工作。

cakePHP 有点新。使用 2.x

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    从 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'
        )
    ));
    

    或者,在您的 Sport Model 中留下 $order,但它应该只是:

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

    并在 Location Model 中添加一个类似的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2017-11-14
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多