$many_many / $belong_many_many の関係で、DataObject を別の DataObject にプログラムで追加しようとしています。Silverstripe-3 はそのタスクに問題があるようです。
//Object 1
<?php
class ProductSubCategory extends DataObject {
static $db = array(
'Name' => 'Text',
'Description' => 'Text',
'RemoteIndexId'=>'varchar',
'LegalName' => 'Text',
'CodeName' => 'Text'
);
static $many_many = array('Ingredients'=>'Ingredient');
function addIngredients($ingredientsArray){
foreach($ingredientsArray as $k=>$value){
$newIngredient = new Ingredient();
$newIngredient->RemoteIndexId = $value->id;
$newIngredient->Name = $value->name;
$newIngredient->CodeName = $value->code_name;
$newIngredient->Description = $value->description;
$this->Ingredients()->add($newIngredient);
}
}
}
//Object 2
<?php
class Ingredient extends DataObject {
static $db = array(
'Name' => 'Text',
'RemoteIndexId'=>'Varchar',
'ScientificName' => 'Text',
'Description'=>'Text',
'Percentage'=>'Varchar',
'CodeName'=>'Varchar'
);
static $belong_many_many = array('ProductSubCategory' => 'ProductSubCategory');
//....(some fields for the UI)...
}
問題の説明: 1. 成分がデータベースに書き込まれていません。2. テーブル ProductSubCategory_Ingredient はレコードを取得しますが、IngredientID ではなく、ProductSubCategoryID の ID のみが含まれます 3. エラー メッセージはありません
何日も解決策を探していましたが、役に立ちません
助けてください!