我想要解决这个问题我有点疯狂,我确信解决方案很简单,但我在查看这些数据关系时遇到了麻烦。所以,这就是我要做的事情:
我有一个名为" Offer"的对象,它需要两个GridFields用于" ItineraryItem"和" ItineraryTab"数据对象
这就是我在三个对象中的那一刻,但它每次都会返回一个错误,我似乎无法弄清楚原因。
// Offer
$has_many = array(
"ItineraryItems" => "ItineraryItem",
"ItineraryTabs" => "ItineraryTab"
);
// On ItineraryTab
$has_one = array(
"Offer" => "Offer"
);
$many_many = array(
"ItineraryItems" => "ItineraryItem"
);
// on ItineraryItem
$has_one = array(
"Offer" => "Offer"
);
$belongs_many_many = array(
"ItineraryTabs" => "ItineraryTab"
);
正如我所说,解决方案可能非常简单,但经过这么多小时的尝试后我再也看不到了!请帮帮我!
我在Silverstripe 3.4上运行,如果有帮助的话
答案 0 :(得分:0)
所以,我必须自己回答这个问题,并找到了可行的方法 - 但我不确定这是正确的方法还是黑客攻击。无论如何,这是有帮助的。
首先,我必须进入数据库并从Tab对象中删除OfferID列。
// Offer.php
$has_many = array(
'ItineraryItems' => 'ItineraryItem'
);
$many_many = array(
'ItineraryTabs' => 'ItineraryTab',
);
//ItineraryItem.php
$has_one = array(
"Offer" => 'Offer'
);
$many_many = array(
'ItineraryTabs' => 'ItineraryTab'
);
//ItineraryTab.php
$belongs_many_many = array(
"ItineraryItems" => "Offer.ItineraryItems"
);
如果有人发现更优雅的东西,请告诉我,但这似乎暂时可以完成。