【问题标题】:Inner Join in TYPO3 ExtbaseTYPO3 Extbase中的内部连接
【发布时间】:2013-06-25 06:21:49
【问题描述】:

我有两张桌子TableATableB。这些必须在TableA.Pid = TableB.Uid 的条件下连接在一起。

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

如何在 TYPO3 中实现这一点?

【问题讨论】:

    标签: database orm inner-join typo3


    【解决方案1】:

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

    这里有一个更通用的方法,适合新手:
    假设您的表 A 被命名为 parent 而表 B 被命名为 child

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 2012-10-06
      • 2013-08-26
      • 1970-01-01
      相关资源
      最近更新 更多