【发布时间】:2014-07-02 03:03:58
【问题描述】:
我有一个班级“表演”,每个表演都可以作为推荐链接到其他表演。经过一些试验和错误后,我使用 ORM 得到了一些半成品:
public static $many_many = array(
'Recommendations' => 'Performance'
);
public static $belongs_many_many = array(
'Recommendations' => 'Performance'
);
上面让我指定建议,但在正常的多对多(两个类之间)中,相反的关系也是可用的。这里不是。关于如何在“性能”类上显示逆关系而不创建逆多对多并在此处手动插入逆关系的任何线索?
更新(2014 年 5 月 22 日):目前我得出的结论是,对于这个问题没有现成的解决方案。我根据@FinBoWa 的解决方案制作了以下最小示例,它显示了“未找到 Degree.InterestingDegreesReversed (Degree) 的逆分量”:
class Degree extends DataObject {
private static $db = array(
"Name" => "Varchar(255)",
);
private static $many_many = array(
'InterestingDegrees' => 'Degree'
);
private static $belongs_many_many = array(
'InterestingDegreesReversed' => 'Degree.InterestingDegrees'
);
}
class DegreeAdmin extends ModelAdmin {
public static $managed_models = array('Degree');
static $url_segment = 'degrees';
static $menu_title = 'Degrees';
}
我也尝试了@g4b0 的解决方案,但它有一个严重的缺点,它没有在管理员中显示反向关系。现在我正在使用他的解决方案,但这并不是问题的真正解决方案。因此,我暂时不会接受答案...
【问题讨论】:
-
您找到真正的解决方案了吗?我有同样的问题
-
不,对不起...我解决了它...
标签: orm many-to-many silverstripe