【问题标题】:Model Hierarchy In Php Phalcon - Can't Find Attribute of Parent Model When Accessing Child ModelPhp Phalcon 中的模型层次结构 - 访问子模型时找不到父模型的属性
【发布时间】:2015-03-28 14:32:15
【问题描述】:

我正在开发 Php Phalcon,Xampp 服务器。我的模型类形成了一个层次结构。

我有一个 UsersAbstract 类,它具有一些通用属性,如 Full_Name、Email_ID 等。 然后我派生了类 UserOfficials,它具有更多属性,如 Occupation 等。然后我有一个名为 OfficialDoctor 的孙类(继承自 UserOfficials)。 UsersAbstract 类也是 UserPatients 的父类。

当我想访问 UsersAbstract 和 UserPatients 时,我使用了以下代码:

$select_patient = "Select "
                            ."UserPatients.Patient_ID, "
                            ."UserPatients.Unique_ID, "
                            ."UsersAbstract.Full_Name, "
                            ."UsersAbstract.Age, "
                            ."UsersAbstract.Gender, "
                            ."UsersAbstract.City, "
                            ."UsersAbstract.Country FROM UserPatients JOIN UsersAbstract WHERE UsersAbstract.Unique_ID = UserPatients.Unique_ID "
                            ."And UsersAbstract.Availablity_Flag = 1";

        $patients = $this->modelsManager->executeQuery($select_patient);
        $this->current_patient = $patients[0];

这很好用。现在我想从 UserOfficials 访问一个属性,这是我的代码:

$id = $user->Unique_ID;
               $select_doctor = "Select UserOfficials.Occupation from UserOfficials WHERE UserOfficials.Unique_ID = :uid:";
               $occ = $this->modelsManager->executeQuery($select_doctor, array("uid" => $id));

这段代码给了我以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'usersabstract.Occupation' in 'field list'

我的问题很简短 - 为什么?我正在访问表 UserOfficials 而不是 UsersAbstract。

注意: 我的表和对应的类命名如下:

Class -------------- Table

UsersAbstract ------ UsersAbstract

UserOfficials ------ User_Officials

UserPatients ------- User_Patients

我知道相应数据库表必须使用驼峰式命名,但如果一个查询有效,那么为什么另一个查询无效?

【问题讨论】:

    标签: php mysql phalcon


    【解决方案1】:

    我已经解决了这个问题,我必须在列名周围加上单引号,即

    $select_doctor = "Select UserOfficials.Occupation from UserOfficials WHERE UserOfficials.Unique_ID = :uid:";

    在此之后,它不再给出错误。

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多