php - 我的第一个 CakePHP 项目中未找到列错误

标签 php mysql cakephp mysql-error-1054

我正在使用 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/

相关文章:

php - paypal 中的订单摘要不显示项目

mysql - 使用 MySQL 生成唯一且随机的代码数字

mysql - 在 LIMIT 1 的查询中使用依赖查询是一个错误的操作吗?

image - 如何在 webroot View 中显示图像

php - Cakephp - 检测是否无法连接到数据库并正常恢复

ajax - CakePHP Ajax 分页

php - 仅将压缩图像保存到数据库

php - MySQL中如何将数据从一张表迁移到另一张表

php - Xpath中preg_match的错误是什么? undefined offset : 1

php - 每周存储多人统计数据的最佳方式