我在Symfony2项目中安装了Sonata Admin Bundle。这是我的composer.json的要求:
"require": {
"php": ">=5.3.9",
"symfony/symfony": "2.7.*",
"doctrine/orm": "~2.2,>=2.2.3,<2.5",
"doctrine/dbal": "<2.5",
"doctrine/doctrine-bundle": "~1.4",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~4.0",
"sensio/framework-extra-bundle": "~3.0,>=3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"doctrine/doctrine-migrations-bundle": "^1.0",
"friendsofsymfony/user-bundle": "~2.0@dev",
"cunningsoft/chat-bundle": "^0.4.0",
"knplabs/knp-time-bundle": "^1.3",
"knplabs/knp-paginator-bundle": "^2.4",
"knplabs/knp-menu-bundle": "~2",
"twig/extensions": "^1.3",
"sonata-project/core-bundle": "^2.3",
"sonata-project/block-bundle": "^2.3.8",
"sonata-project/admin-bundle": "dev-master",
"sonata-project/doctrine-orm-admin-bundle": "^2.3"
},
我正在使用dev-master版本,但这个问题似乎也出现在2.3版本中。
我有一些用户发布的帖子,每当我想使用高级过滤器过滤某些内容时,高级过滤器会在过滤后消失,但如果我重新检查“高级过滤器”链接,它们会显示内部值。
在dev-master和2.3版本中都会发生这种情况,它发生在所有实体上,而不仅仅是这个实体。
我已经检查了Sonata Sandbox演示,但这并没有发生。怎么会?它是一个启用此功能的设置吗?或者它是某个版本?过滤后如何使高级过滤器保持可见?
在过滤之前,我按'详情'
添加过滤器过滤后,高级过滤器框消失:
但如果我再次按“高级过滤器”链接,它会出现并且仍然选择了“不包含”选项。
答案 0 :(得分:1)
看来这实际上是他们的预期行为???
/* Advanced filters */
if (jQuery('.advanced-filter :input:visible', subject).filter(function () { return jQuery(this).val() }).length === 0) {
jQuery('.advanced-filter').hide();
};
我不知道为什么他们这样做......
它出现在vendor/sonata-project/admin-bundle/Resources/public/Admin.js
如果您将此文件复制到自己的捆绑包中(将SonataAdminBundle作为父捆绑包),并对vendor/sonata-project/admin-bundle/Resources/public
行进行评论,则应该获得您正在寻找的行为。