2

我有两张桌子TableATableB. 这些必须结合在一起的条件TableA.Pid = TableB.Uid

表的域对象是在使用扩展构建器构建扩展时创建的。

我如何在 TYPO3 中实现这一点?

4

1 回答 1

3

简短的回答:对于 field pid,你不能突然做到这一点。pid表的保留标识符,不能随意使用。此外,在 MVC 方案中,INNER JOIN 连接的概念并没有这样实现。不幸的是,恕我直言。在过去很容易搞砸;)。

对于那些不熟悉此的人来说,这里有一个更通用的方法
: 假设您的表 A 被命名为parent而表 B 被命名为child

  • 您可以在域模型对话中的扩展构建器中设置关系。创建两个域模型:ParentChild
  • 通过在链接到模型ParentChild域模型中创建关系parentrecord来连接它们。
  • 确保将两者都创建为聚合根

在此处输入图像描述

parentrecord关系将在您的模型中 定义my_ext/Classes/Domain/Model/Child.php
注释将其@var链接到域模型:

/**
 * parentrecord
 *
 * @var \TYPO3\MyExt\Domain\Model\Parent
 */
protected $parentrecord;

然后可以像这样从您的控制器中检索父记录的所有子记录(例如,父 uid = 42):

$this->childRepository->findByParentrecord(42);

这是一个简短的答案。请注意,您的自定义 Extbase 代码可能无法开箱即用,但不要沮丧 - 它最终会起作用。至于这pid件事,我会尽力帮助你解决你相关的其他问题

于 2013-07-31T20:09:40.750 回答