Silverstripe 3.2 - 如何在不同选项卡的 ModelAdmin 中管理相同数据对象的不同列表
Silverstripe 3.2 - How to manage different lists of the same Dataobjects in ModelAdmin in different tabs
我想在 ModelAdmin 中管理同一数据对象的不同筛选列表。我有 DataObject "Message",它有一个 SentbyID 和一个 SenttoID。在 ModelAdmin 中,我想管理两个列表。一个包含具有特定 SentbyID 的所有消息的列表和一个包含具有特定 SenttoID 的消息的列表。我可以在不同的选项卡中管理这两个列表吗,f.e。 "Inbox" 和 "Outbox"?我怎样才能做到这一点?
到目前为止我有这个:
class MessageAdmin extends ModelAdmin {
private static $menu_title = 'Messages';
private static $url_segment = 'messages';
private static $managed_models = array (
'Message'
);
public function getList() {
$currMember = Member::currentUserID();
$list = Message::get()->filter(array('SenttoID' => $currMember));
return $list;
}
}
您必须通过两个不同的 ModelAdmin 来处理它,例如在 ReceivedMessageAdmin 中重命名 MessageAdmin,并创建一个全新的 SentMessageAdmin,如下所示:
class SentMessageAdmin extends ModelAdmin {
private static $menu_title = 'Sent Messages';
private static $url_segment = 'sent-messages';
private static $managed_models = array (
'Message'
);
public function getList() {
$currMember = Member::currentUserID();
$list = Message::get()->filter(array('SentbyID' => $currMember));
return $list;
}
}
重载 getEditForm 并定义一个包含 TabSet 的新 FieldList。 SilverStripe Comments 模块通过在同一 ModelAdmin 中的不同选项卡中显示不同类型的评论(垃圾邮件与审核)提供了一个很好的示例。
看看https://github.com/silverstripe/silverstripe-comments/blob/2.1/code/admin/CommentAdmin.php
我想在 ModelAdmin 中管理同一数据对象的不同筛选列表。我有 DataObject "Message",它有一个 SentbyID 和一个 SenttoID。在 ModelAdmin 中,我想管理两个列表。一个包含具有特定 SentbyID 的所有消息的列表和一个包含具有特定 SenttoID 的消息的列表。我可以在不同的选项卡中管理这两个列表吗,f.e。 "Inbox" 和 "Outbox"?我怎样才能做到这一点?
到目前为止我有这个:
class MessageAdmin extends ModelAdmin {
private static $menu_title = 'Messages';
private static $url_segment = 'messages';
private static $managed_models = array (
'Message'
);
public function getList() {
$currMember = Member::currentUserID();
$list = Message::get()->filter(array('SenttoID' => $currMember));
return $list;
}
}
您必须通过两个不同的 ModelAdmin 来处理它,例如在 ReceivedMessageAdmin 中重命名 MessageAdmin,并创建一个全新的 SentMessageAdmin,如下所示:
class SentMessageAdmin extends ModelAdmin {
private static $menu_title = 'Sent Messages';
private static $url_segment = 'sent-messages';
private static $managed_models = array (
'Message'
);
public function getList() {
$currMember = Member::currentUserID();
$list = Message::get()->filter(array('SentbyID' => $currMember));
return $list;
}
}
重载 getEditForm 并定义一个包含 TabSet 的新 FieldList。 SilverStripe Comments 模块通过在同一 ModelAdmin 中的不同选项卡中显示不同类型的评论(垃圾邮件与审核)提供了一个很好的示例。
看看https://github.com/silverstripe/silverstripe-comments/blob/2.1/code/admin/CommentAdmin.php