Silverstripe Gridfield 过滤器不工作

Silverstripe Gridfield filters not working

我有一个网站,我刚刚从 2.4 更新到 3.1。

在我的本地环境中,一切正常,但一旦上传到生产环境,GridFields 上的搜索过滤器就不起作用了。没有我能看到的错误,它们只是不过滤任何东西。

有人遇到过这个吗?

class Product extends DataObject {

    static $db = array (
        'URLSegment'=>'Varchar(255)',
        'Name' => 'Text',
        'ProductCode' => 'Text',
        'Description' => 'Text'
    );

    static $has_one = array (
        'ProductPage' => 'ProductPage',
        'OverrideProductImage' => 'Image'
    );

    static $searchable_fields = array( 
        'Name',
        'Description', 
        'ProductCode' 
    );

    static $create_table_options = array(
        'MySQLDatabase' => 'ENGINE=MyISAM'
    );


    public function getCMSFields() {
        return new FieldList(
            new TextField('Name'),
            new TextField('ProductCode'),
            new TextareaField("Description","Description"),
            new Uploadfield("OverrideProductImage", "Product Image")

        );
    }
}

class ProductPage extends Page {

    public static $db = array(
        'ShowOnHome' => 'Boolean'
    );

    static $has_many = array (
        'Products' => 'Product'
    );

    public function getCMSFields() {
        $f = parent::getCMSFields();

        $config = GridFieldConfig_RecordEditor::create();
        $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array(
            'Thumbnail' => 'Product Image',
            'Name' => 'Name',
            'ProductCode' => 'ProductCode', 
            'Description' => 'Description'
        ));

        $config->addComponent(new GridFieldOrderableRows());

        $productsField = new GridField(
            'Products', // Field name
            'Product', // Field title
            $this->Products(), 
            $config
        );

        $f->addFieldToTab('Root.Products', $productsField);

        return $f;
    }
}

你的在线服务器上是否启用了 suhosin?我上周偶然发现了这个问题,它将在即将到来的 3.1.11 中修复。也许检查你可以下载的预发行版 here(包括 composer 命令)

不幸的是,Suhosin 登录到我的 debian 机器上的系统日志,所以我首先没有发现任何错误。

必须更新 suhosin.get.max_name_length 才能使 excel 导出正常工作,必须更新 suhosin.post.max_name_length 才能使分页和列排序/过滤正常工作。

Github issue