0

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

QCubed 开发人员还在那里吗?

4

1 回答 1

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

于 2017-07-21T08:05:14.353 回答