我有两张桌子TableA
和TableB
. 这些必须结合在一起的条件TableA.Pid = TableB.Uid
。
表的域对象是在使用扩展构建器构建扩展时创建的。
我如何在 TYPO3 中实现这一点?
我有两张桌子TableA
和TableB
. 这些必须结合在一起的条件TableA.Pid = TableB.Uid
。
表的域对象是在使用扩展构建器构建扩展时创建的。
我如何在 TYPO3 中实现这一点?
简短的回答:对于 field pid
,你不能突然做到这一点。pid
是页表的保留标识符,不能随意使用。此外,在 MVC 方案中,INNER JOIN 连接的概念并没有这样实现。不幸的是,恕我直言。在过去很容易搞砸;)。
对于那些不熟悉此的人来说,这里有一个更通用的方法
:
假设您的表 A 被命名为parent而表 B 被命名为child。
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
件事,我会尽力帮助你解决你相关的其他问题。