【问题标题】:Issue viewing list after adding virtual fields - cakePHP添加虚拟字段后的问题查看列表 - cakePHP
【发布时间】:2013-02-02 10:59:10
【问题描述】:

我有一个页面列出了在公司工作的所有员工。在我将 virtual fields 添加到用户模型之前,它一直运行良好。

现在它给了我以下错误:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'HrEmployee.name'
in 'field list'

SQL Query: SELECT `User`.`id`, `User`.`username`, `User`.`password`,
`User`.`hr_employee_id`, `User`.`group_id`, `User`.`created`, `User`.`modified`,
(CONCAT(`HrEmployee`.`name`, " ", `HrEmployee`.`surname`, " (",
`HrEmployee`.`jobTitle`, ")")) AS `User__fullname` FROM `intraweb_db`.`users`
AS `User` WHERE `User`.`hr_employee_id` = (182)

我是 cakePHP 新手,因此一直在尝试解决这个问题。然而,我正在挣扎。谁能告诉我我做错了什么?

【问题讨论】:

  • 您没有在查询中定义表 HrEmployee

标签: php mysql cakephp-2.2


【解决方案1】:

假设HrEmployee 是这里的另一个表;

SELECT 
    u.id, u.username, u.password,
    u.hr_employee_id, u.group_id, u.created, u.modified,
    (
        CONCAT(HrEmployee.name, " ", HrEmployee.surname, " (", HrEmployee.jobTitle, ")")
    ) AS u__fullname 
FROM intraweb_db.users AS u 
# need to join HrEmployee via related field with users
JOIN HrEmployee ON (HrEmployee.RELATED_FIELD = u.RELATED_FIELD)
WHERE u.hr_employee_id = (182)

【讨论】:

  • 好的,查询是由 cakePHP 生成的。所以我不知道把它放在哪里。在我在用户模型中指定一个虚拟字段之前,查询工作 100% 正常。现在我可以看到列表了,但是一旦我尝试查看一个人,它就会死掉。
【解决方案2】:

好的,所以我通过删除 $hasmany 下的用户引用来修复它。我们不需要它来调用那个页面,所以一切都很好。

现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多