我们公司使用Qcubed PHP框架继承了一个应用程序。该框架的一个特征是QQuery查询方法。我们无法确定是否可以使用QQuery在两列上的两个表之间创建连接。
还有QCubed开发人员还在吗?
答案 0 :(得分:0)
还有QCubed开发人员吗? - > 是,很多都是。大多数动作都可以在github上找到
https://github.com/qcubed/qcubed
连接: 有关QQuery的有趣之处在于,当在表之间设置正确的外键时,它会自动连接表。示例页面上有大量关于此的信息,请查看:
http://qcu.be/examples/index.php
额外提示:在加载之前尝试定义连接。 Qcubed将在请求相关对象时自动执行连接,但最好事先扩展它们。
快速举例:
//loads a Person object into memory
//select * from person where id = 1;
$objPerson = Person::Load(1);
echo $objPerson->Name . ' lives in ' . $objPerson->Town->Name;//will cause a query in the style "select * from town where id=x;"
//loads a Person object into memory, and joins the Town table.
//select * from person LEFT JOIN town on town.id = person.town_id where id = 1;
$objPerson = Person::Load(1, QQ::Clause(QQ::Expand(QQN::Person()->Town)));
echo $objPerson->Name . ' lives in ' . $objPerson->Town->Name;//no extra query, town was already joined by the expand.
两者都将返回相同的数据,但后者更有效。
回答有关将2列作为主要部分的部分:我不是100%肯定,我从未使用过这样的QCubed。但是,请查看提及的http://qcu.be/examples/vendor/qcubed/framework/assets/php/examples/code_generator/primary_keys.php:
QCubed还为在其上定义了多列主键的表提供了一些支持。对于具有多列主键的表,QCubed将完全生成对象本身。但请注意,您将无法将此生成的对象用作另一个表的相关对象(换句话说,QCubed不支持多列外键)。但是,使用这些对象中生成的所有Load方法,仍然可以使用多列外键的表完全开发应用程序。基本上,只要您想通过多列外键访问相关对象,就可以直接调用该对象的Load方法来检索该对象。
如果要在没有外键的情况下定义关系,请查看本地安装中的codegen.xml文件。