我正在使用 CakePHP ,但收到以下错误! 这是因为
ON (`Trip`.`city_id` = `City`.`id`)
应该是
(`City'.`city_id` = `Trip`.`id`)
我该如何纠正这个问题?
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Trip.city_id' in 'on clause'
SELECT `Trip`.`id`, `Trip`.`user_id`, `Trip`.`type_id`, `Trip`.`title`, `Trip`.`city1`, `Trip`.`city2`, `Trip`.`date`, `Trip`.`free_places`, `Trip`.`description`, `Trip`.`contact_email`, `Trip`.`created`, `City`.`city_id`, `City`.`city_name` FROM `mitfahr-ar`.`trips` AS `Trip` LEFT JOIN `mitfahr-ar`.`cities` AS `City` ON (`Trip`.`city_id` = `City`.`id`) WHERE 1 = 1
我的模型代码是:
<?php
class Trip extends AppModel
{
public $name= 'Trip';
public $belongsTo= array('City');
}
?>
最佳答案
[....] Which is because
ON (`Trip`.`city_id` = `City`.`id`)
Should be
(`City'.`city_id` = `Trip`.`id`)
不,不应该,后一个完全没有意义,`City`.`city_id`
表示自连接,并且在任何情况下都只能关联单个城市与其他一条记录,这没有意义 normalization明智的。
CakePHP 生成的前一个表达式是绝对正确的,在 belongsTo
关联中,外键由当前模型保存。
参见http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#belongsto
因此,要解决此问题,请将正确的 city_id
外键添加到您的 trips
表中。
关于php - 我的第一个 CakePHP 项目中未找到列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194226/