私はバックエンドで、値段のインターフェイスのように、任意の数の値を製品に追加するためのユーザーインターフェイスを実装しています。このようなデータの保存が通常どのように行われているかを知りたい。以下はMagento 1.6 - モデルのコレクションとしてユーザ入力から配列を保存する
は私の試みのいくつかの単純化されたコードです(このエラーがスローされます:「1」はすでに「存在する同じIDを持つ項目):
$myItemCollection = $product->getMyItemCollection();
if(!$myItemCollection) {
$myItemCollection = Mage::getModel('my_module/my_item')->getCollection();
}
foreach($product->getMyData('items') as $data) {
$myItem = Mage::getModel('my_module/my_item')->addData($data);
// Item with the same id "1" already exist on the second iteration
$myItemCollection->addItem($myItem);
}
$myItemCollection
->setDataToAll('product_id', $product->getId())
->save();
$製品 - > getMyData( 『アイテム』)は何かを返します等:
array(
1 => array(
'foo' => 'bar'
),
2 => array(
'bin' => 'baz'
),
3 => array(
'buz' => 'fuz'
)
)