gpt4 book ai didi

symfony - 奏鸣曲管理员 : Want to create global configuration page

转载 作者:行者123 更新时间:2023-12-04 20:59:37 25 4
gpt4 key购买 nike

我需要创建一个没有 ListView 的单一全局配置页面,只需一个页面,输入的数量如下:

  • Facebook 专页链接
  • 谷歌分析 ID
  • 一些默认的前端文本
  • 复选框选项:显示介绍、显示社交媒体等。

不需要通过记录列表、编辑、保存和返回列表等的东西。

我需要用表单和我自己的 crud 创建新的 Controller 吗?或者有没有办法用那种面板很好地连接/覆盖 sonata admin?

我正在使用:

  • 最新的 Symfony 2.3.X
  • 奏鸣曲缓存 2.1.5
  • 奏鸣曲 block 2.2.7
  • Sonata easy-extends 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
  • 奏鸣曲 1.1.*@dev
  • 最新的 Stof 原则扩展

编辑

根据 pulzarraider 的回答和更多搜索,我最终覆盖了 CRUD Controller 的 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 Controller 显示自定义表单而不是默认的实体列表操作:

<?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')
));
}
}
?>

感谢您的帮助!

最佳答案

是的,在 Sonata Admin 中通过重载默认的 CRUD Controller 是可能的。

您必须创建自定义 Controller 并重载 editAction。在 editAction 中,您可以创建标准的 Symfony 表单,处理来自用户的数据并将其保存在您想要的任何位置。

关于symfony - 奏鸣曲管理员 : Want to create global configuration page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563456/

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