gpt4 book ai didi

symfony - 奏鸣曲管理员 : mosaic selected by default

转载 作者:行者123 更新时间:2023-12-02 16:28:42 27 4
gpt4 key购买 nike

我正在使用 Sonata Admin,并且有一个列表和马赛克 View 。如何默认选择马赛克 View ?
我不想隐藏 ListView ,只需默认选择马赛克 View 即可。

最佳答案

Admin 类继承自 AbstractAdmin。如果我们有一个实体类 Foo,我们将创建一个扩展 Sonata\AdminBundle\Admin\AbstractAdmin 的管理类 FooAdmin

让我们看一下源代码:

public function setListMode($mode)
{
if (!$this->hasRequest()) {
throw new \RuntimeException(sprintf('No request attached to the current admin: %s', $this->getCode()));
}

$this->getRequest()->getSession()->set(sprintf('%s.list_mode', $this->getCode()), $mode);
}

public function getListMode()
{
if (!$this->hasRequest()) {
return 'list';
}

return $this->getRequest()->getSession()->get(sprintf('%s.list_mode', $this->getCode()), 'list');
}

这些是设置和获取列表模式的方法。有两种列表模式的按钮:listmosaic。如果您将鼠标指针悬停在鼠标上,您会看到它们指向相同的 URL,但具有不同的参数:

  • /list?_list_mode=列表
  • /list?_list_mode=马赛克

在方法 getListMode 中,我们看到默认调用 list 模式。

我发现将mosaic设置为默认的方法是调用Admin类中的setListMode方法:

protected function configureListFields(ListMapper $listMapper)
{
if ($mode = $this->request->query->get('_list_mode')) {
$this->setListMode($mode);
} else {
$this->setListMode('mosaic');
}

$listMapper
->addIdentifier('fooId')
->add('fooBar')
;
}

我希望它可以帮助别人。我一直在寻找更优雅的方法,例如在管理服务中设置,但找不到更好的解决方案。如果有人有其他建议,我很乐意学习新东西。

关于symfony - 奏鸣曲管理员 : mosaic selected by default,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50331188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com