如何扩展tt_address

时间:2015-07-26 14:17:10

标签: typo3 extbase

我创建了我的第一个extbase扩展,工作正常。现在我想在我的分机中输入地址信息,比如城市,邮政编码和街道。

我更愿意与" tt_address"建立关系。我的目标是从" tt_address"创建1:N关系。我的扩展名。

但扩展" tt_address"基于" pi_base",我该如何处理这个问题?我的" tca"看?

如何创建记录表格" createAction"进入" tt_address"表,我应该需要对象管理器吗?

网上有例子吗?

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

   /**
     * 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;
    }

在此之后我扩展了我的typoscript 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,
            ),
        ),

1 个答案:

答案 0 :(得分:0)

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