问题标签 [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 投票
3 回答
14553 浏览

symfony - Sonata_type_admin 调用时如何在 Sonata 的 Admin 类中获取底层对象?

因此,在 Sonata Admin 的编辑操作中,我试图根据创建编辑上下文显示不同的表单字段。

也许先有一些背景..

我有一个与 OneToOne 绑定的 Gallery 实体和一个 CoverPhoto 实体。

画廊:

封面图片:

这是对应的GalleryAdmin类:

在这里,我们使用CoverImageAdmin

“缩略图”是我的自定义表单字段,它显示缩略图(令人震惊)。但现在我希望这个字段只出现在“编辑”上下文中。

这应该是小菜一碟

method of Admin class and condition. Unfortunately when I call getSubject() in CoverImagesAdmin class which is used to render nested form it always returns null. The same with getParent();

Calling getForm() results in

Fatal error: Maximum function nesting level of '500' reached, aborting! in /home/flameheart/Projects/KolberPhotography/vendor/symfony/symfony/src/Symfony/Component /OptionsResolver/Options.php on line 350

I've tried to call about every method of Admin and FormMapper just to determine form's context but ended up with nothing.

Do you guys have any idea how to solve this in a clean way ?

0 投票
1 回答
1180 浏览

php - Sonata admin - “order by” does't work for Entity

I can't make to work a entity sorting in the sonata admin listing, here is my entity:

And here is the configureListFields definition:

When clicking on the table head column to sort it by my entity name I get this error:

An exception has been thrown during the rendering of a template ("[Semantical Error] line 0, col 25 near 'AS __order_by': Error: Entity\User has no field or association named AS")

How can I make this sort to work for the entity so it sorts alphabetically by my entity name?

Thank you

Julian Mancera

0 投票
1 回答
182 浏览

symfony - 如何在奏鸣曲管理包中调整列大小和居中内容

如何调整奏鸣曲管理包中的列大小和中心内容?

0 投票
4 回答
5141 浏览

symfony - 可软删除行为并真正删除实体

我正在使用DoctrineExtensionsStofDoctrineExtensionsBundle来获得可软删除的行为。

它在我的应用程序的前端工作得非常好。

在后端,我需要“硬”删除实体的选项。

我在我的管理控制器中禁用了过滤器(我使用 SonataAdmin):

这有效(软删除的实体出现在列表中),但是当我尝试删除它时,实体确实再次被软删除。如何强制“硬”删除?

0 投票
0 回答
1882 浏览

symfony - 未在奏鸣曲包中定义的实体管理器

我已经集成了奏鸣曲管理包。然后我成功地集成了奏鸣曲新闻包。然后我创建了一个自定义包。我想使用奏鸣曲包将此包配置为我的 CMS 包。我可以在管理部分显示我的 CMS 包,但是当我尝试编辑或添加新项目时,我收到一个错误:

没有为 Fcse\CmsBundle\Entity\Book 500 类定义实体管理器

内部服务器错误 - RuntimeException

当我运行命令时,书是我的实体

书表也没有创建。我在配置中遗漏了什么吗?

我的配置文件很大。我正在发布我的 cms 捆绑包的代码。

我在 app/config.yml 中导入这个文件。

0 投票
2 回答
2221 浏览

symfony - Symfony 2 Sonata Admin - ListMapper 中的自定义排序

我有一个Customer实体,其中包含 FirstName、LastName 等字段。

我也有这样的实体方法:

我的configureListFields函数如下所示:

如何使字段fullName可排序?

如何在有或没有 Doctrine ORM 的情况下添加自定义排序条件?

0 投票
0 回答
180 浏览

apache - Symfony2 Sonata 管理员使 apache 在 Windows 7 上崩溃

我正在学习 Symfony 并安装了Sonata Admin Bundle。打开 /admin/login/ 第一次打开后,但重新加载apache 后出现故障。所以每次页面重新加载后,我都需要重新启动 apache。

我认为这是我的代码错误,所以在我的本地安装了工作站点,但遇到了同样的问题。

不知道什么信息对提出问题很重要,请告诉我,我会更新问题。

更新:

我得到perl错误:

可以找到Linux的解决方案,需要运行以下命令:

但对于Windows 7没有。

StackOverflow 上还有一些解决方案: How to fix a locale setting warning from Perl?

解决方案

问题出在 APC 扩展中,您可以在您的开发服务器上禁用它,因为它只是 cahce 的扩展。没有它对我有用。

0 投票
3 回答
6890 浏览

php - Sonata Admin 与文件上传的一对多关系(appendFormFieldElement)

我目前正面临 SonataAdminBundle、一对多关系和文件上传的挑战。我有一个实体叫Client和一个叫ExchangeFile。一个Client可以有几个ExchangeFiles,所以我们这里是一对多的关系。我正在使用VichUploaderBundle进行文件上传。

这是Client课程:

这是ExchangeFile课程:

在我的ClientAdmin课堂上,我exchangeFiles通过以下方式添加了该字段:

这允许在客户端编辑表单中对各种交换文件进行内联编辑。到目前为止效果很好:具有一对多关系和文件上传的 Sonata Admin.

问题

但是有一个警告:当我点击绿色“+”号一次(添加一个新的交换文件表单行),然后在我的文件系统中选择一个文件,然后再次点击“+”号(通过 Ajax 附加一个新的表单行),选择另一个文件,然后点击“更新”(保存当前客户端),那么第一个文件就不会被持久化了。在数据库和文件系统中只能找到第二个文件。

据我了解,这有以下原因:当第二次点击绿色“+”号时,当前表单被发布到网络服务器,包括表单中当前的数据(客户端和所有交换文件)。创建了一个新表单并将请求绑定到表单中(这发生在AdminHelper位于的类中Sonata\AdminBundle\Admin):

所以整个表单被绑定,一个表单行被附加,表单被发送回浏览器,整个表单被新的表单覆盖。但由于<input type="file" />出于安全原因无法预先填充文件输入 ( ),因此第一个文件会丢失。该文件仅在实体被持久化时才存储在文件系统中(我认为为此VichUploaderBundle使用了 Doctrine prePersist),但是在附加表单字段行时还不会发生这种情况。

我的第一个问题是:我该如何解决这个问题,或者我应该往哪个方向发展?我希望以下用例能够工作:我想创建一个新客户端,并且我知道我将上传三个文件。我点击“新建客户端”,输入客户端数据,点击绿色“+”按钮一次,选择第一个文件。然后我再次点击“+”号,然后选择第二个文件。第三个文件也一样。所有三个文件都应该被持久化。

第二个问题:当我只想以一对多的关系添加单个表单行时,为什么 Sonata Admin 会发布整个表单?这真的有必要吗?这意味着如果我有文件输入,则每次添加新的表单行时都会上传表单中存在的所有文件。

在此先感谢您的帮助。如果您需要任何详细信息,请告诉我。

0 投票
3 回答
6829 浏览

symfony - Sonata Admin:让用户只编辑他们拥有的实体 (ACL)

我用 ACL 设置了 Sonata Admin。我有不同的用户、组和权限,它们工作正常。为此,我遵循了有关 ACL 的 Sonata Admin 文档

所以这是我的问题:确保后端(管理员)用户只能查看、编辑和删除他们使用 Symfony 和 Sonata Admin 的内置 ACL 机制创建的实体的干净方法是什么?一旦对象保存在 ACL 表中(来自Sonata 文档),Sonata Admin 就会自动存储对象的所有者(创建者):

Owner:创建对象时,当前登录的用户被设置为该对象的所有者,并被授予该对象的所有访问权限;

Stackoverflow 上已经回答了相同的问题,但答案没有详细说明如何使用 ACL 解决它。

0 投票
2 回答
1814 浏览

symfony - 无法注册扩展“沙盒”,因为扩展已被初始化

我在安装 Sonata 项目演示时遇到问题。按照这个...

我遇到以下问题: