问题标签 [sonata-admin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6467 浏览

symfony - 对自定义表单类型使用 sonata_type_collection 而不是与另一个实体的属性/关系

是否可以sonata_type_collection针对自定义表单类型而不是与另一个实体的属性/关系使用?

像这样的东西:

这引发了以下错误

编辑:

像这样的东西起到了作用:

0 投票
2 回答
2738 浏览

symfony - 奏鸣曲:致命错误:达到“100”的最大函数嵌套级别..嵌入表单时

编辑:对于有兴趣解决相同问题的任何人,这都成功了:


我为彼此链接的 3 个实体创建了 3 个管理员,其中 A 管理员嵌入了 B 管理员,而 B 管理员嵌入了 C 管理员。B 实体与 A 和 B 实体具有多对一关系。

A 实体嵌入 B 实体,代码如下:

B实体嵌入C实体与以下之一:

注意:改成'edit' => 'list'有利于'edit' => 'standard'避免以下错误。

在编辑 A 实体时,将 B Admin 实体放置array( 'edit' => 'list' )sonata_type_model表单类型上会出现以下错误。如果改为array( 'edit' => 'standard' )使用,则不输出错误:

棘手或奇怪的事情是,无论编辑是列表还是标准,如果我去 B admin 编辑它。仅当我使用编辑列表选项集编辑嵌入到 A 中的 B 时才会出现问题。这发生在我实施相同行为的其他一些实体中。

以下是 A、B 和 C 实体以及它们如何相互链接:

一个实体:

B实体:

C实体:

为了能够查看所有内容,您可以使用奏鸣曲演示项目来检查类似的行为。
如您所见,它与 Sonata Project 演示中的用例相同,其中 Gallery 链接到 GalleHasMedias,而 GalleHasMedias 链接到 Media:http ://demo.sonata-project.org/admin/sonata/media/gallery/255 /edit?context=default正如你所看到的,GalleryHasMedia 与 Gallery 有一个 ManyToOne 关系,另一个与 Media 有关系,所以当你编辑一个 Gallery 时,你可以看到一个sonata_type_modelwithedit' => 'inline','inline' => 'table',所以 GalleryHasMedia 被嵌入到 Gallery 表单中,以便能够添加新的将与当前图库链接并存储在其中的媒体GalleryHasMedia

有没有人遇到过类似暴露的情况?希望有人可以指出正确的方向或帮助了解正在发生的事情。

PD:对我来说,B 和 C 实体似乎在无限循环中相互链接/嵌入。但如前所述,3 个管理员分别工作得很好(而 A 没有嵌入 B)。

0 投票
2 回答
2890 浏览

php - SonataUser - 从管理表单中删除字段

我将 FOSUser 与 SonataUser 和 SonataAdmin 一起使用。我还使用了 SonataEasyExtends 来创建 app/Application/Sonata/UserBundle,正如在将 FOS 与 Sonata 一起使用时的几个教程中所述。

我只是想从用户实体的管理表单中删除几个默认字段,例如社交(facebook、twitter、...)。

我试图通过放置来覆盖表单

我想我必须将它注册为服务,并告诉索纳塔默认使用它。

但我不知道该怎么做。

我至少在正确的轨道上吗?

0 投票
2 回答
5820 浏览

symfony - 覆盖用户管理表单

我正在尝试覆盖SonataUser/Admin/Model/UserAdmin's configureFormFields(),因为我需要从管理表单中删除一些默认字段。所以我复制了vendor/bundles/Sonata/UserBundle/Admin/Model/UserAdmin.php我的包中的文件app/Application/Sonata/UserBundle/Admin/Model/UserAdmin.php并修改了它。然后将其声明为服务:

现在问题:我做得对吗?我怎样才能告诉奏鸣曲管理员使用它?

0 投票
1 回答
409 浏览

symfony - Symfony2:奏鸣曲管理包。什么是持久化服务?

我正在绝望地尝试制作 Admin Bundle 好几天了,我被困在某个时刻。我决定从头开始。

我已经正确安装了所有供应商,现在,我已经可以通过访问以下网址访问管理仪表板:http://yoursite.local/admin/dashboard。(那里没什么有趣的,只有标题。)

所以在第 2.2 步,他们希望我设置持久性服务(ORM、ODM、...),我不知道它是用来做什么的,上次,因为他们说“SonataAdminBundle 不强制执行持久性服务(服务用于处理和控制你的模型)”我已经跳过了这一步......但也许我不应该这样做......

谁能告诉我它是做什么用的吗?我应该使用它,为什么以及为什么?也许这就是我不能让它工作的原因。

谢谢你 !

0 投票
5 回答
6033 浏览

php - SonataUser - 扩展管理员

我正在尝试修改User实体的默认管理员。
实际上只需要从表单中删除某些字段。

我想这个文档在可用时会对我有用。
现在我已经创建了这个管理员并尝试覆盖默认管理员User

应用程序/应用程序/奏鸣曲/UserBundle/Admin/Model/UserAdmin.php

应用程序/配置/config.yml

但我越来越

无法导入资源“/var/www/Symfony/app/config/。” 来自“/var/www/Symfony/app/config/routing.yml”。
...
ErrorException:可捕获的致命错误:传递给 Sonata\AdminBundle\Admin\Admin::addExtension() 的参数 1 必须是 Sonata\AdminBundle\Admin\AdminExtensionInterface 的实例,Application\Sonata\UserBundle\Admin\Model\ 的实例给定的 UserAdmin,在第 3139 行的 /var/www/Symfony/app/cache/dev/appDevDebugProjectContainer.php 中调用,并在第 2359 行的 /var/www/Symfony/vendor/bundles/Sonata/AdminBundle/Admin/Admin.php 中定义

我究竟做错了什么 ?

0 投票
1 回答
12574 浏览

php - Sonata Admin:添加自定义触发器/动作到列表/编辑动作

SonataAdminBundle用于管理我的应用程序中的实体。该网站的管理员可以添加视频,其中一些首先需要得到演讲者的批准。已经有一个授权系统在工作 - 我有一个工作代码,它将生成一个特殊链接并通知演讲者,演讲者可以批准或不批准视频,并自动通知管理员。

ask for authorization我想自定义我的管理部分,所以视频旁边会有一个按钮。我可以将它放在列表操作 ( /admin/acme/videos/list) 或右侧导航 ( /admin/acme/videos/x/edit/)某处的编辑操作中

这样做的最佳方法是什么?文档中关于块自定义的内容很少,但我发现这个示例可能是我正在寻找的东西,但我不知道如何使用它。

一种选择是使用preUpdate钩子,并在编辑操作中添加一个复选框,但一个按钮会更好。

0 投票
1 回答
11688 浏览

templates - Sonata Admin Bundle - 表单类型:sonata_type_collection - 自定义模板?

是否可以覆盖表单类型的模板:“sonata_type_collection”?

我试过沿着这些路线:

但无济于事。

我知道我可以覆盖整个模板,但我只想为这个表单做它,而不是我使用这个表单类型的所有地方。

有谁知道这是否可能?

谢谢

0 投票
2 回答
11954 浏览

symfony - SonataMediaBundle - 如何上传图片?

可能应该标题为:“SonataMediaBundle - 缺少的方法在哪里?”。

我已经使用 sonataAdminBundle 和 sonataDoctrineORMAdminBundle(以及其他一些)创建了一些管理后端,大多数事情都按预期工作,但我将文件上传和处理留到以后,因为我想“这可能有多难?”。

长话短说 - 是否有任何关于最简单事物的文档 - 即将图像附加到帖子或条目,如何配置奏鸣曲管理类,如何以编辑形式显示图像缩略图等?

文档的第一页以“您可以访问您的管理仪表板”结尾,好像我可以期待那里有一些相关的变化,可能是媒体管理器启动并运行,或者其他什么。但这种情况并非如此。

下一页简要介绍了 heplers,然后是另一页,介绍了相当复杂的 vimeo 提供者案例研究。

我已经在整个网络上进行了搜索,我能想到的最好的方法是带有 ajax 弹出窗口的上传字段和上传文件的列表。

在我的管理课上,我有:

在我的新闻课上:

并且实现了所有 yaml 配置和路由。

结果是:Fatal error: Call to a member function add() on a non-object in [some-entity].php当尝试上传图像时,图像ID的可选列表带有“加号”(我猜是sonata_type_model字段)。

我被困住了。我能够在一两个小时内在普通的 sf2 中创建媒体“管理器”,但这是另一个项目,将当前项目重写为这种模式意味着“从头开始”。那么 - 为了使sonataMediaBundle 与sonataAdminBundle 一起按预期工作,该怎么做?


编辑:这就是我所做的:

我的新闻类(或任何其他需要上传图片的):

我的文档类(需要更改表的名称,因为我在某些服务器上遇到了保留字的问题):

如您所见,大部分内容是从 symfony2 教程中复制而来的。

现在,对于控制器:

我的基础包类扩展了管理包类,我可以覆盖模板:

SomeSiteBundle/resources/views/CRUD/base_edit.html.twig我稍微更改了模板以让用户看到当前设置的图片:

现在我每条新闻只使用一张图片(“特色图片”),无论如何这有点矫枉过正,因为我使用的是带有 jbimages 插件的 tinyMCE,所以无论如何我都可以将图像放入新闻正文中。要使 jbimages 插件正常工作,您必须设置一些 tinyMCE 选项:

------ 这部分处理 tinymce 和 tinymce 包和 tinymce 插件: ---------

$config['img_path'] = '/web/uploads/documents';(或任何其他适合您的路径)在web/bundles/stfalcontinymce/vendor/tiny_mce/plugins/jbimages/config.php. (当然,您需要先安装 stfalcon tinymce bundle)。然后我进行了一些编辑以允许读取web/bundles/stfalcontinymce/js/init.jquery.js更多选项:config.yml

最后在config.yml

这就是全部,AFAIR。希望这可以帮助 ;-)

0 投票
2 回答
1943 浏览

symfony-sonata - 如何将 SonataUserBundle 用户列表添加到管理仪表板 (SonataAdminBundle)?

如何将用户添加到管理仪表板?

我的应用程序:
  • Symfony 2.0.16
  • FOSUserBundle 1.2.x
  • SonataAdminBundle
  • 奏鸣曲媒体包
  • SonataPageBundle
  • SonataUserBundle

我已按照 sonata-project.org 中的说明进行操作,没有收到任何错误,但我的管理仪表板是空的!我想管理我的用户和组。

我不知道这是否相关,但奏鸣曲被添加到内核中:

新 SonataUserBundle('FOSUserBundle')

如何将用户和组的 CRUD 添加到我的管理仪表板?

如果您想查看我的配置,请告诉我哪个部分。我没有发布我所有的配置,因为有很多代码行,我想让这个问题保持干净。