【发布时间】:2019-01-22 22:22:26
【问题描述】:
我只想在我的 silverstripe 网站的 CMS 端显示我的数据库中最近的 100 个条目。我目前可以看到所有 600 个,这是不必要的。 silverstripe 文档没有帮助,我无法进入他们的论坛问这个问题。
我尝试在表的 ID 上设置大于过滤器,但过滤器不起作用。
这是我的模型管理文件
use SilverStripe\Admin\ModelAdmin;
use SilverStripe\Forms\DateField;
use SilverStripe\Forms\GridField\GridField;
use UndefinedOffset\SortableGridField\Forms\GridFieldSortableRows;
use SilverStripe\Forms\GridField\GridFieldFilterHeader;
class BonusAllocations extends ModelAdmin
{
private static $managed_models = [
'AffiliateProgram\MemberBonus'
];
private static $url_segment = 'bonus';
private static $menu_title = 'Bonuses Allocations';
public function getList()
{
$list = parent::getList();
return $list;
}
}
这是我当前的数据对象
<?php
namespace AffiliateProgram;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\DropdownField;
use SilverStripe\Forms\GridField\GridField;
use UndefinedOffset\SortableGridField\Forms\GridFieldSortableRows;
use SilverStripe\Security\Permission;
use SilverStripe\ORM\DataObject;
class MemberBonus extends DataObject
{
private static $db = [
'Amount' => 'Currency',
'Confirmed' => 'Boolean',
'Level' => 'Int',
'Percentage' => 'Int'
];
private static $has_one = [
'Member' => 'AffiliateProgram\Member',
'MemberPayment' => 'AffiliateProgram\MemberPayment',
'PaymentType' => 'AffiliateProgram\PaymentType',
'ProgramType' => 'AffiliateProgram\ProgramType'
];
private static $summary_fields = [
'Amount' => 'Amount (USD)',
'Member.Email' => 'Email',
'Level',
'MemberPayment.PaymentType.Symbol' => 'Recieved As',
'Percentage' => 'Percentage Bonus Applied',
'ProgramType.Name' => 'Program Type',
'MemberPayment.Created' => 'Payment Date',
// 'Confirmed' => 'Confirmed?',
'MemberPayment.ID' => 'Payment ID',
'ID' => 'Bonus ID'
];
public function searchableFields()
{
return [
'Member.Email' => [
'filter' => 'PartialMatchFilter',
'title' => 'Email',
'field' => TextField::class,
],
'ProgramType.Name' => [
'filter' => 'ExactMatchFilter',
'title' => 'Program',
'field' => DropdownField::create('ProgramType')
->setSource(
ProgramType::get()->map('Name','Name')
)
->setEmptyString('-- Any Program --')
],
'MemberPayment.PaymentType.Symbol' => [
'filter' => 'ExactMatchFilter',
'title' => 'Locale (Symbol)'
],
];
}
}
【问题讨论】:
-
$list = $list->limit(100); -
@3dgoo 很抱歉很痛苦,但你能告诉我具体在哪里实施吗?这会在返回列表之前出现在 modelAdmin 中吗?干杯!
-
编辑:我做了上述操作,它改变了顶部的“查看 1-100 或 100”,但不影响显示的条目数......有什么想法吗?
-
默认情况下,ModelAdmin 的网格字段分页并显示每页 15 个条目。你在你的 ModelAdmins 的 EditForm 方法中做了什么特别的事情吗?
标签: silverstripe silverstripe-4