【发布时间】:2015-01-30 12:23:53
【问题描述】:
我正在使用 Xampp 服务器在 PHP Phalcon 中工作。
我有一系列模型:
UsersAbstract 是 UserOfficials、UserPatients 的父级。
UsersOfficial 是 OfficialDoctor 的父级。
数据库中的表与上面的模型名称相同,只是名称为驼峰式,如User_Officials等。只是 UsersAbstract 的表没有以驼峰式命名。原因是在这个项目开发的早期,我遇到了一个错误,通过将名称更改为 UsersAbstract 而不是 Users_Abstract 解决了这个错误。
无论如何,现在我正在尝试运行代码,导致 sn-p 的错误在这里:
foreach ($available_users as $user)
{
$select_doctor = "Select "
."UserOfficials.Occupation,"
."UsersAbstract.Full_Name,"
."UserOfficials.Doc_ID "
."from UserOfficials join UsersAbstract "
."On UserOfficials.Unique_ID = UsersAbstract.Unique_ID"
." Where UserOfficials.Unique_ID = :uid:";
$doctor_details = $this->modelsManager->executeQuery($select_doctor, array("uid" => $user->Unique_ID));
if ($doctor_details->occupation == "Doctor")
$this->available_doctor = $doctor_details;
}
我正在尝试将医生从可用用户列表中分离出来。我收到的错误是这样的
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'usersabstract'
UserOfficials 和 UsersAbstract 表都有一个名为 Unique_ID 的列,用于将它们相互链接。
编辑:我添加了加入条件
[已解决]
UsersAbstract 类有一个函数“getSource()”。该函数在子孙类中没有重载。这就是在我的代码中观察到错误的原因。当我唯一设置每个模型类的来源时,问题就解决了。
【问题讨论】:
-
没有加入条件。join syntax
-
顺便说一句,
thisIsCamelCase和this_is_snake_case和我don'tKnow_whyYou_would_mixThem_in_theSame_databaseSchema -
好吧,我当时就糊涂了