仅供参考,我'm a TYPO3 rookie :) I'在我的TYPO3个人网站上制作我自己的extbase / fluid扩展来管理画廊 . 目前,我正在关注此文档:Developing TYPO3 Extensions with Extbase and Fluid
目前,我只在Domain / Model中构建了2个类:
-
Galery.php
-
Picture.php .
变量设置,getter / setter也是如此 .
我很清楚我需要在一个关系中链接两个(“1:n”?)但我不使用Extension Builder并且想要自己理解如何做到这一点 . 我想我必须编辑Gallery.php模型来解释我想要实现的关系是什么,但却无法理解该怎么做 .
有帮助吗?
3 回答
学习如何执行此操作的好方法是使用Extension Builder创建扩展,然后读取生成的代码 .
如果您想自己添加关系,则需要编辑
ext_tables.sql
并将列添加到TCA和模型中 . 阅读你提到的书的chapter 6,你会发现该怎么做 .你已经收到了一些好的答案 .
附加点(用于编辑幻灯片扩展):
PictureModel.php:
如果您对图库/图片使用1:n,则表示您的图像一次只能在一个图库中 . 不必要的限制 . 我想使用m:n(但这实际上是一般的数据库建模问题) .
对于m:n,你需要一个额外的关系表(按照惯例称为tx_slideshow_gallery_picture_mm) . 让extension_builder为您创建它更容易 . 手动,您至少需要更改数据库模型(ext_tables.sql),Model和TCA . 特别是从头开始编写TCA可能有点棘手 .
示例TCA:
稍后,您可能会认为您甚至不需要额外的Picture类,而只需使用FileReferences列表......但出于教育目的,我建议您遵循最初的方法 .
试图理解事物是如何工作而不是使用"builder"来为你创造东西是令人钦佩的,但是考虑到在TYPO3中需要一些文件来创建一个模型(TCA,Model,Repository,ext_tables.sql) . 因此,手动完成所有操作可能是乏味和错误的 . 阅读文档,使用extension_builder和自己修改代码,同时查看现有扩展的组合在我看来是用于教育目的的方式 . 后来,使用extension_builder创建骨架然后自己修改它的组合最适合我 .
也许博客示例可以帮助关系:通过博客示例的旅程 . https://docs.typo3.org/typo3cms/ExtbaseFluidBook/3-BlogExample/Index.html