Database TYPO3 Extbase中的内部联接
我有两个表Database TYPO3 Extbase中的内部联接,database,orm,inner-join,typo3,Database,Orm,Inner Join,Typo3,我有两个表TableA和TableB。必须在条件TableA.Pid=TableB.Uid下将它们连接在一起 表的域对象是在使用扩展生成器构建扩展时创建的 如何在TYPO3中实现这一点 简短回答:对于字段pid,您不能突然这样做pid是pages表的保留标识符,不能自由使用。此外,在MVC方案中,内部连接的概念并没有这样实现。不幸的是,伊姆霍。在过去,到处乱搞是很容易的 对于新手来说,这里有一个更通用的方法: 假设表A命名为父级,表B命名为子级 您可以在“域模型”对话框中的扩展生成器中设置关系
TableA
和TableB
。必须在条件TableA.Pid=TableB.Uid
下将它们连接在一起
表的域对象是在使用扩展生成器构建扩展时创建的
如何在TYPO3中实现这一点 简短回答:对于字段
pid
,您不能突然这样做pid
是pages表的保留标识符,不能自由使用。此外,在MVC方案中,内部连接的概念并没有这样实现。不幸的是,伊姆霍。在过去,到处乱搞是很容易的
对于新手来说,这里有一个更通用的方法:假设表A命名为父级,表B命名为子级
- 您可以在“域模型”对话框中的扩展生成器中设置关系。 创建两个域模型:父域模型和子域模型
- 通过在子域中创建关系parentrecord来连接它们 链接到模型父级的模型
- 确保将两个都创建为聚合根
my\u ext/Classes/Domain/model/Child.php
中定义@var
注释将其链接到父域模型:
/**
* parentrecord
*
* @var \TYPO3\MyExt\Domain\Model\Parent
*/
protected $parentrecord;
然后可以从控制器中检索父记录的所有子项(例如,父uid=42),如下所示:
$this->childRepository->findByParentrecord(42);
这是一个简短的答案。请注意,您的自定义Extbase代码可能无法开箱即用,但不要灰心,它最终会工作的。
至于pid
这件事,我会尽力帮你解决相关问题