问题标签 [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.
symfony - 对自定义表单类型使用 sonata_type_collection 而不是与另一个实体的属性/关系
是否可以sonata_type_collection
针对自定义表单类型而不是与另一个实体的属性/关系使用?
像这样的东西:
这引发了以下错误
编辑:
像这样的东西起到了作用:
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_model
withedit' => 'inline','inline' => 'table',
所以 GalleryHasMedia 被嵌入到 Gallery 表单中,以便能够添加新的将与当前图库链接并存储在其中的媒体GalleryHasMedia
。
有没有人遇到过类似暴露的情况?希望有人可以指出正确的方向或帮助了解正在发生的事情。
PD:对我来说,B 和 C 实体似乎在无限循环中相互链接/嵌入。但如前所述,3 个管理员分别工作得很好(而 A 没有嵌入 B)。
php - SonataUser - 从管理表单中删除字段
我将 FOSUser 与 SonataUser 和 SonataAdmin 一起使用。我还使用了 SonataEasyExtends 来创建 app/Application/Sonata/UserBundle,正如在将 FOS 与 Sonata 一起使用时的几个教程中所述。
我只是想从用户实体的管理表单中删除几个默认字段,例如社交(facebook、twitter、...)。
我试图通过放置来覆盖表单
我想我必须将它注册为服务,并告诉索纳塔默认使用它。
但我不知道该怎么做。
我至少在正确的轨道上吗?
symfony - 覆盖用户管理表单
我正在尝试覆盖SonataUser/Admin/Model/UserAdmin
's configureFormFields()
,因为我需要从管理表单中删除一些默认字段。所以我复制了vendor/bundles/Sonata/UserBundle/Admin/Model/UserAdmin.php
我的包中的文件app/Application/Sonata/UserBundle/Admin/Model/UserAdmin.php
并修改了它。然后将其声明为服务:
现在问题:我做得对吗?我怎样才能告诉奏鸣曲管理员使用它?
symfony - Symfony2:奏鸣曲管理包。什么是持久化服务?
我正在绝望地尝试制作 Admin Bundle 好几天了,我被困在某个时刻。我决定从头开始。
我已经正确安装了所有供应商,现在,我已经可以通过访问以下网址访问管理仪表板:http://yoursite.local/admin/dashboard。(那里没什么有趣的,只有标题。)
所以在第 2.2 步,他们希望我设置持久性服务(ORM、ODM、...),我不知道它是用来做什么的,上次,因为他们说“SonataAdminBundle 不强制执行持久性服务(服务用于处理和控制你的模型)”我已经跳过了这一步......但也许我不应该这样做......
谁能告诉我它是做什么用的吗?我应该使用它,为什么以及为什么?也许这就是我不能让它工作的原因。
谢谢你 !
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 中定义
我究竟做错了什么 ?
php - Sonata Admin:添加自定义触发器/动作到列表/编辑动作
我SonataAdminBundle
用于管理我的应用程序中的实体。该网站的管理员可以添加视频,其中一些首先需要得到演讲者的批准。已经有一个授权系统在工作 - 我有一个工作代码,它将生成一个特殊链接并通知演讲者,演讲者可以批准或不批准视频,并自动通知管理员。
ask for authorization
我想自定义我的管理部分,所以视频旁边会有一个按钮。我可以将它放在列表操作 ( /admin/acme/videos/list
) 或右侧导航 ( /admin/acme/videos/x/edit/
)某处的编辑操作中
这样做的最佳方法是什么?文档中关于块自定义的内容很少,但我发现这个示例可能是我正在寻找的东西,但我不知道如何使用它。
一种选择是使用preUpdate
钩子,并在编辑操作中添加一个复选框,但一个按钮会更好。
templates - Sonata Admin Bundle - 表单类型:sonata_type_collection - 自定义模板?
是否可以覆盖表单类型的模板:“sonata_type_collection”?
我试过沿着这些路线:
但无济于事。
我知道我可以覆盖整个模板,但我只想为这个表单做它,而不是我使用这个表单类型的所有地方。
有谁知道这是否可能?
谢谢
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。希望这可以帮助 ;-)
symfony-sonata - 如何将 SonataUserBundle 用户列表添加到管理仪表板 (SonataAdminBundle)?
如何将用户添加到管理仪表板?
我的应用程序:- Symfony 2.0.16
- FOSUserBundle 1.2.x
- SonataAdminBundle
- 奏鸣曲媒体包
- SonataPageBundle
- SonataUserBundle
我已按照 sonata-project.org 中的说明进行操作,没有收到任何错误,但我的管理仪表板是空的!我想管理我的用户和组。
我不知道这是否相关,但奏鸣曲被添加到内核中:
新 SonataUserBundle('FOSUserBundle')
如何将用户和组的 CRUD 添加到我的管理仪表板?
如果您想查看我的配置,请告诉我哪个部分。我没有发布我所有的配置,因为有很多代码行,我想让这个问题保持干净。