Symfony2最佳实践可编辑文本奏鸣曲管理软件包

Symfony2最佳实践可编辑文本奏鸣曲管理软件包

问题描述:

我正在使用奏鸣曲管理软件包的symfony2项目。我在我的网站上有一些可编辑的文本,比如“演示文稿”,“实际上”等等......Symfony2最佳实践可编辑文本奏鸣曲管理软件包

我找到了一个解决方案,但并不觉得它是一种很好的方法。

我创建了一个实体EditableText,我映射与内容就象是一把钥匙:

键=>“文稿” 内容=>“这是我的演讲”

和我做同样的为我所有的EditableText。

这样做会将我带到我的奏鸣曲管理束中的EditableText列表,这对于非技术人员来说不是“用户友好”的。如果他删除一行,网站找不到内容...等等...

我想在奏鸣曲中有一个字段,用户可以在某处编辑每个文本,但无法修改它们的密钥或删除一排或一些东西。

我不介意改变我的观念。

如果您有任何建议,意见,...

感谢和我的英语很抱歉;)

+0

可能还会多一点的文脉融入为什么有一个密钥存储实体编辑(貌似?)单个词的文本?如果它是[翻译](http://symfony.com/doc/current/book/translation.html),那是一回事。如果是设置,则可能适合使用[Yaml]治疗。或者一个实体(可能?)可能是合适的。从性能上看,在数据库中将自己的单行文本片段放在一个数据库中看起来并不是一个好主意,尽管我不知道这个实现。 –

+0

好吧,我会尝试。我的网站由一些文本组成,如我的演示文稿,我实际上在做什么等等。我希望这些文本可以在奏鸣曲管理包中编辑。我创建了一个名为EditableText(字符串键,字符串内容)的实体,我把它作为关键“演示文稿”,并作为内容“我的演示文稿blablabla”。然后在我的控制器中,我询问数据库的EditableText有“演示”键,然后我可以加载内容,然后我可以加载它 – pcavalet

如果你想保持你的理念,你可以通过使用限制为编辑访问基于角色的安全方法。您可以授予编辑the security section of the SonataAdminBundle documentation中所述的ROLES LIST,VIEW,EDIT。通过这种方式,管理员(您)可以为您的网站创建具有所需密钥的实体,编辑人员可以查看和更新​​它们。

举个例子:当你已经确定你的管理服务为 sonata.admin.editable_text

你必须分配角色

  • ROLE_SONATA_ADMIN_EDITABLE_TEXT_LIST
  • ROLE_SONATA_ADMIN_EDITABLE_TEXT_VIEW
  • ROLE_SONATA_ADMIN_EDITABLE_TEXT_EDIT

你可以比轻易地将这些角色将使用role_hierarchy指令的security配置的一个角色:

security: 
# ... 
role_hierarchy: 

    # group the roles for your convenience, 
    ROLE_SONATA_EDITOR: 
     - ROLE_SONATA_ADMIN_EDITABLE_TEXT_LIST 
     - ROLE_SONATA_ADMIN_EDITABLE_TEXT_VIEW 
     - ROLE_SONATA_ADMIN_EDITABLE_TEXT_EDIT 
+0

这是我的问题的一个很好的解决方案,谢谢! – pcavalet