QCubed - 连接多列的表

时间:2017-06-14 03:13:16

标签: qcubed

我们公司使用Qcubed PHP框架继承了一个应用程序。该框架的一个特征是QQuery查询方法。我们无法确定是否可以使用QQuery在两列上的两个表之间创建连接。

还有QCubed开发人员还在吗?

1 个答案:

答案 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文件。