如何扩展 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
我创建了我的第一个 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