如何扩展 tt_address

How to extend tt_address

我创建了我的第一个 extbase 扩展,它运行良好。现在我想在我的分机中输入地址信息,例如城市、邮政编码和街道。

我更喜欢与 "tt_address" 建立关系。我的目标是创建从 "tt_address" 到我的分机的 1:N 关系。

但是扩展 "tt_address" 是基于 "pi_base" 的,我该如何处理这个问题?我的 "tca" 看起来怎么样?

我如何从我的 "createAction" 创建一个记录到 "tt_address" table,我需要对象管理器吗?

网上有例子吗?

更新,我用街道、邮编和城市扩展我的模型:

   /**
     * street
     *
     * @var string
     */
    protected $street;

    /**
     * street
     *
     * @var string
     */
    protected $zip;

    /**
     * street
     *
     * @var string
     */
    protected $city;

    public function setStreet($street)
    {
        $this->street = $street;
    }

    public function getStreet()
    {
        return $this->street;
    }

    public function setCity($city)
    {
        $this->city = $city;
    }

    public function getCity()
    {
        return $this->city;
    }

    public function setZip($zip)
    {
        $this->zip = $zip;
    }

    public function getZip()
    {
        return $this->zip;
    }

在此之后我扩展了我的打字错误setup.txt

plugin.tx_oaevents {
    view {
        templateRootPath = {$plugin.tx_oaevents.view.templateRootPath}
        partialRootPath = {$plugin.tx_oaevents.view.partialRootPath}
        layoutRootPath = {$plugin.tx_oaevents.view.layoutRootPath}
    }
    persistence {
    storagePid = {$plugin.tx_oaevents.persistence.storagePid},148
    classes {
        Mab\Oavents\Domain\Model\Events {
            mapping {
                        tablename = tx_nnaddress_domain_model_address
                        columns {
                            zip.mapOnProperty = zip
                            street.mapOnProperty = street
                            city.mapOnProperty = city
                        }
                    }
        }

    }
}

在最后一步中,我扩展了我的扩展 TCA。

address' => array(
            'exclude' => 1,
            'label' => 'Events',
            'config' => array(
                'type' => 'select',
                'foreign_table' => 'tt_address',
                'minitems' => 0,
                'maxitems' => 1,
            ),
        ),

您需要创建一个模型并将其在 TS 中映射到 table tt_address。在此映射中,您需要将模型中的每个字段设置为 table 中要映射的列。当您拥有模型和映射时,其他一切都是一样的。你为你的模型创建控制器和存储库,你可以创建 createAction 来插入一些东西到 table tt_address