【发布时间】:2015-11-17 19:17:22
【问题描述】:
在 SilverStripe 中,我有两个管理模型:服务和位置。 Locations 是一个位置列表。服务是这些位置可以提供的服务列表。但是,只有某些位置可以提供某些服务。我想要做的是,每当添加一个新位置(或者如果一个位置被删除或重命名),我想将它添加到每个服务下的复选框字段中(这样,内容管理器可以轻松控制在哪里提供哪些服务随时)。
这是服务数据对象代码(注意:我还没有在复选框字段中添加):
class Services extends DataObject {
private static $db = array(
'Name' => 'varchar',
);
public static $summary_fields = array(
'Name' => 'Title',
);
}
这是 Locations 数据对象代码:
class Locations extends DataObject {
private static $db = array(
'Name' => 'varchar',
'AcceptingAppointments' => 'boolean',
);
public static $summary_fields = array(
'Name' => 'Title',
'AcceptingAppointments' => 'Accepting Appointments?',
);
public function AcceptingAppointments() {
return ($this->AcceptingAppointments==true ? 'Yes':'No');
}
}
到目前为止一切正常。我可以添加、编辑和删除位置和服务。但是,我不知道如何处理编码服务,以便在内容管理器添加、删除或重命名位置条目时使用所有位置的完整列表更新每个服务。
在这方面使用$has_many 关系是否有效?
【问题讨论】:
标签: php silverstripe