[英]TYPO3 Extbase: Extend tx_cart
我想用一個新字段擴展擴展購物車,以便在結帳時放入 IBAN。 所以我創建了一個新的擴展,並在 ext_tables.sql 中添加了一個數據庫字段,代碼如下
#
# Table structure for table 'tx_cart_domain_model_order_item'
#
CREATE TABLE tx_cart_domain_model_order_item (
iban varchar(255) DEFAULT '' NOT NULL
);
現在我需要擴展 class 項目
ext/cart/Classes/Domain/Model/Order/item.php
我試圖在我的擴展中創建一個文件
ext/cartextend/Classes/Domain/Model/Order/item.php
並嘗試使用以下命令擴展 class:
namespace Extcode\Cart\Domain\Model\Order;
use Extcode\Cart\Property\Exception\ResetPropertyException;
class Item extends \Extcode\Cart\Domain\Model\Order
{
/**
* Iban
*
* @var string
*/
protected $iban;
/**
* @return string
*/
public function getIban()
{
return $this->iban;
}
/**
* @param string $iban
*/
public function setIban($iban)
{
$this->iban = $iban;
}
}
我還添加了一個正確實現的輸入字段。
但是 IBAN 根本沒有保存 - 我猜 class 的擴展是錯誤的。 我真的很感激任何提示。 非常感謝! 烏爾斯
也許您必須像這樣擴展 item.php (rest 看起來不錯):
namespace Extcode\YourExtension\Domain\Model\Order;
class Item extends \Extcode\Cart\Domain\Model\Order\Item
並且不要忘記讓 extbase 知道你可以在前端槽打字稿中使用 iban:(我有它來擴展 cart_products,你必須熟練使用它)
config.tx_extbase {
persistence {
classes {
Extcode\CartExtendedProduct\Domain\Model\Product\Product {
mapping {
tableName = tx_cartproducts_domain_model_product_product
recordType =
}
}
}
}
objects {
Extcode\CartProducts\Domain\Model\Product\Product.className = Extcode\CartExtendedProduct\Domain\Model\Product\Product
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.