Sonata Admin:想要创建全局配置页面
Posted
技术标签:
【中文标题】Sonata Admin:想要创建全局配置页面【英文标题】:Sonata Admin: Want to create global configuration page 【发布时间】:2014-01-01 01:00:33 【问题描述】:我需要创建一个没有列表视图的单一全局配置页面,只是一个带有多个输入的页面,例如:
fb 页面链接 谷歌分析 ID 一些默认的前端文本 复选框选项:显示简介、显示社交媒体等。不需要经过记录列表、编辑、保存和返回列表等的东西。
我需要用表单和我自己的 crud 创建新的控制器吗? 或者有没有办法用这种面板很好地连接/覆盖奏鸣曲管理员?
我正在使用:
Symfony 2.3.X 最新版 奏鸣曲缓存 2.1.5 奏鸣曲乐段 2.2.7 奏鸣曲易扩展 2.1.4 奏鸣曲管理员 2.2.8 奏鸣曲学说-orm-admin 2.2.5 奏鸣曲 jquery 1.8.*@dev 奏鸣曲国际版 2.2.*@dev 奏鸣曲用户 2.2.*@dev 奏鸣曲媒体 2.2.*@dev 奏鸣曲第 2.3 页。*@dev 奏鸣曲 seo 1.1.*@dev Stof Doctrine Extensions 最新编辑
在 pulzarraider 的回答和更多搜索之后,我最终得到了 CRUD 控制器的覆盖 listAction。
详细来说,首先创建服务定义(YML):
services:
stack.admin.global_administration:
class: Stack\Bundle\SiteBundle\Admin\GlobalConfigurationAdmin
tags:
- name: sonata.admin
manager_type: orm
group: Administration
label: Global Configuration
arguments:
- ~
- ~
- StackSiteBundle:GlobalConfiguration
然后为这个特定操作创建管理类:
<?php
namespace stack\Bundle\SiteBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Route\RouteCollection;
class GlobalConfigurationAdmin extends Admin
protected $baseRouteName = 'global-configuration';
protected $baseRoutePattern = 'global-admin';
protected function configureRoutes(RouteCollection $collection)
// notice removal of create action!
$collection->remove('create');
?>
最后 CRUD 控制器显示自定义表单而不是默认实体列表操作:
<?php
namespace Stack\Bundle\SiteBundle\Controller;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
use Symfony\Component\HttpFoundation\Request;
class GlobalConfigurationController extends Controller
public function listAction()
if (false === $this->admin->isGranted('LIST'))
throw new AccessDeniedException();
// custom code here...
return $this->render('StackSiteBundle:Administration:configuration-view.html.twig', array(
'action' => 'list',
'csrf_token' => $this->getCsrfToken('sonata.batch')
));
?>
感谢您对此的帮助!
【问题讨论】:
感谢分享答案,请问您也可以分享本页的内容StackSiteBundle:Administration:configuration-view.html.twig
吗?
【参考方案1】:
是的,在 Sonata Admin 中可以通过重载默认 CRUD 控制器来实现。
您必须创建自定义控制器并重载editAction
。
在 editAction 中,您可以创建标准 Symfony 表单,处理来自用户的数据并将其保存在您想要的任何位置。
【讨论】:
这给了我两个提示,但我最终覆盖了 listAction,因为我需要在您从顶部菜单中选择项目后立即显示自定义表单。那成功了。稍后我可能会发布代码如何做到这一点。 @ShachMaT - 显然,您没有时间发布代码。您错过了回馈社区的机会。 @roelleor 是的,我真丢脸。即使我发布了“代码”,所以谢谢你打我的头;)迟到了。以上是关于Sonata Admin:想要创建全局配置页面的主要内容,如果未能解决你的问题,请参考以下文章
在 Symfony 4 上的 Sonata 管理页面中创建一个新页面
四 Django框架,models.py模块,数据库操作——创建表数据类型索引admin后台,补充Django目录说明以及全局配置文件配置