Php Phalcon中的模型层次结构 - 访问子模型时无法找到父模型的属性

时间:2015-01-29 11:22:36

标签: php mysql phalcon

我正在研究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

我知道相应数据库表的驼峰案例名称必须但是如果一个查询起作用那么为什么不是另一个?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,我不得不在列的名称周围加上单引号,即

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

在此之后,它没有给出更多错误。