Sonata Admin搜索功能:尚未设置Request对象

时间:2018-02-21 10:51:54

标签: symfony sonata-admin sonata

我希望在将symfony迁移到版本3.4.2后激活奏鸣曲管理搜索功能。 我在奏鸣曲块服务中发现了一个问题:

  

在渲染模板期间抛出异常(“The   请求对象尚未设置“)。

这是奏鸣曲块配置:

sonata_block.yml

sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]
        sonata.admin.block.search_result:
            contexts: [admin]
        sonata.block.service.text:
        sonata.block.service.rss:

请问任何解决方案?

2 个答案:

答案 0 :(得分:0)

您使用的是SonataTranslationsBundle吗?这是fixed recently。也许你应该更新?如果没有,请打开一个问题并提供堆栈跟踪。

答案 1 :(得分:0)

解决方案是覆盖get请求函数,因为它抛出异常:

  public function getRequest()
    {
        if (!$this->request) {
            throw new \RuntimeException('The Request object has not been set');
        }

        return $this->request;
    }

所以我创建了一个扩展抽象管理员的类,并使我的管理文件夹中的每个类都从它扩展:

class MYAdmin extends AbstractAdmin
{
    /**
     * {@inheritdoc}
     */
    public function getRequest()
    {
        if (!$this->request) {
            return $this->request = $this->getConfigurationPool()->getContainer()->get('request_stack')->getCurrentRequest();
        }
        return $this->request;
    }
}
相关问题