标签: sonata-admin

SonataAdminBundle自定义呈现列表中的文本字段

我正在使用symfony2和SonataAdminBundle.我有一个名为Post的简单实体,其中我的内容字段基本上是html文本(来自记录的ckeditor).我需要在Post列表中将内容字段显示为原始html,而不是转义它.像这样黑客攻击base_list_field模板

{% block field %}{{ value|raw }}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

有效,但显然不是正确的方法.任何提示?

编辑:已解决!我在config.yml中为sonata_doctrine_orm_admin定义了一个自定义html类型:

sonata_doctrine_orm_admin:
    templates:
      types:
        list:
          html: MyBundle:Default:list_html.html.twig
Run Code Online (Sandbox Code Playgroud)

并创建了自定义list_html.html.twig模板,其中我不转义HTML:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}
    {{value|raw}}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

现在,在PostAdmin中,我可以在configureListFields方法中定义字段的行为:

$listMapper
    ->add('content', 'html')
Run Code Online (Sandbox Code Playgroud)

symfony twig sonata-admin

42
推荐指数
1
解决办法
1万
查看次数

如何在嵌套管理员中执行内联编辑?

我的问题如下.我正在使用Symfony的Sonata Admin.在Admin部分中,当我尝试创建实体时,单击添加按钮(拼写为"Ajouter")时不会显示任何内容:

在此输入图像描述

我收到以下错误:Call to a member function getName() on a non-object在chrome控制台中

这是我的实体层次结构的方式,我有三个以下列方式链接在一起的对象:

Video ---OneToOne--> String ---OneToMany--> LocalizedString
Run Code Online (Sandbox Code Playgroud)

简单地说,我有一个视频将有一个标题,这个标题将被翻译.这是我的实体:

LocalizedString

OSC\UtilsBundle\Entity\LocalizedString:
    type: entity
    table: null
    repositoryClass: OSC\UtilsBundle\Entity\LocalizedStringRepository
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
    fields:
        locale:
            type: string
            length: '20'
        content:
            type: string
            length: 255

    manyToOne:
        parent:
            targetEntity: String
            mappedBy: localizedObjects


    lifecycleCallbacks: {  }
Run Code Online (Sandbox Code Playgroud)

OSC\UtilsBundle\Entity\String:
    type: entity
    table: null
    repositoryClass: OSC\UtilsBundle\Entity\StringRepository
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO

    oneToMany:
        localizedObjects:
            targetEntity: LocalizedString
            mappedBy: parent …
Run Code Online (Sandbox Code Playgroud)

php symfony sonata-admin

31
推荐指数
1
解决办法
1684
查看次数

如何在Sonata Admin表单中使用Ajax?

我有一个商家实体,其中包含以下字段和关联: -

/**
 * @ORM\ManyToMany(targetEntity="Category", inversedBy="merchants")
 */
public $categories;

/**
 * @ORM\ManyToMany(targetEntity="Tag", inversedBy="merchants")
 */
public $tags;

/**
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="merchants")
 */
protected $primaryCategory;

/**
 * @ORM\ManyToOne(targetEntity="Tag", inversedBy="merchants")
 */
protected $primaryTag;
Run Code Online (Sandbox Code Playgroud)

标签和类别也有ManyToMany映射.所以我们有Tag_Category,Merchant_Tag,Merchant_Category映射表.

现在我想在这些字段上执行一些ajax.

我想让用户先选择主标签.在主标记的基础上,ajax将类别刷新为仅属于此标记的类别以及更多操作.

我怎样才能做到这一点?

谢谢!

ajax symfony symfony-sonata sonata-admin

29
推荐指数
1
解决办法
2万
查看次数

以编程方式设置Select2 ajax的值

我有一个Select2自动完成输入(通过SonataAdmin构建),但在我的生活中无法弄清楚如何以编程方式将其设置为已知的键/值对.

这里有一个JS小提琴,大致显示了我的内容.我想知道的是我可以将哪些功能附加到按钮上

  • Select2字段向用户显示文本"NEW VALUE",和
  • 将表单发送到服务器时,Select2字段将提交值"1"

我已经尝试了jQuery和Select2 data以及val方法的各种组合,在页面上针对各种输入调用,但似乎没有任何工作......当然有一些方法可以做到这一点?

- 编辑 -

下面接受的答案非常有用,有助于阐明初始化选择的正确方法,并解释initSelection的用途.

话虽如此,我最大的错误似乎是我试图触发变化的方式.

我用的是:

$(element).select2('data', newObject).trigger('change');
Run Code Online (Sandbox Code Playgroud)

但是这会导致addselect2的change事件中出现一个空对象.

相反,如果您使用:

$(element).select2('data', newObject, true);
Run Code Online (Sandbox Code Playgroud)

那么代码可以正常工作,newObject可以在select2的change事件中使用,并且值正确设置.

我希望这些额外的信息可以帮助别人!

javascript jquery jquery-select2 sonata-admin

29
推荐指数
5
解决办法
7万
查看次数

带有可翻译字段的SonataAdminBundle(学说扩展)

我在"ext_translations"表中有一个包含所有翻译的表.

翻译工作很棒.现在的问题是:我想通过sonata-admin包管理这些翻译.

我已经找到了一个文档,如何使用sonata admin获取工作原理扩展.但在我的情况下,我有一个表/实体用于我的所有翻译(对于多个实体).

所以根据这个文档:http://www.elao.com/blog/symfony-2/doctrine-2/how-to-manage-translations-for-your-object-using-sonataadminbundle.html应该是我的mappedBy属性(见下文)?

ext_translations表:

mysql> show columns from ext_translations;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| locale       | varchar(8)   | NO   | MUL | NULL    |                |
| object_class | varchar(255) | NO   |     | NULL    |                |
| field        | varchar(32)  | NO   |     | NULL    |                |
| foreign_key  | …
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm sonata-admin

27
推荐指数
1
解决办法
2476
查看次数

SonataAdminBundle:显示非crud(统计)

我正在使用sonata管理包来生成我的后端,我很高兴它,我想用我的后端来显示统计数据.

我想我可以通过调整bundle的视图,"standard_layout.html.twig"来做到这一点.

问题是,我找不到例子甚至是人们谈论它,所以我想知道,这可能吗?是不是人们都在谈论它,因为它太简单了?你做了吗 ?

我真的很想有一个后端,所以请开导我!

谢谢你,copndz

symfony sonata-admin symfony-2.2

26
推荐指数
3
解决办法
1万
查看次数

Sonata Admin(2.3)中的嵌套集合字段

我在创建课程时遇到了问题.这是我正在尝试创建表单的数据库方案的一部分:

在此输入图像描述

我正在尝试做的是创建一个课程,我可以创建会话和日期(时刻)附加到该会话.它应该看起来像这样:

在此输入图像描述

在我的CourseAdmin课程中,我有:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('name',                   'text',         array('label' => 'Naam'))
        ->add('description',            'textarea',     array('label' => 'Beschrijving'))
        ->add('materials',              'textarea',     array('label' => 'Benodigde materialen'))
        ->add('numberOfParticipants',   'number',       array('label' => 'Aantal deelnembers'))
        ->add('numberOfDays',           'number',       array('label' => 'Aantal dagen'))
        ->add('price',                  'number',       array('label' => 'Prijs'))
        ->add('priceKmo',               'number',       array('label' => 'KMO-portefeuille Prijs'))

        ->add('location', 'sonata_type_model', array('expanded' => true, 'by_reference' => false, 'multiple' => true, 'btn_add' => false))

        ->add('session', 'sonata_type_collection', array(
            'by_reference' => false,
            'type_options' => array(
                // Prevents the "Delete" option from being …
Run Code Online (Sandbox Code Playgroud)

php nested symfony symfony-sonata sonata-admin

24
推荐指数
1
解决办法
2509
查看次数

如何在奏鸣曲Admin类中获取容器实例?

我需要从config.yml解析一些配置参数,例如启用的语言.但是当我尝试使用普通的symfony方法时:$this->container->get('my_params');它失败了,因为我的管理类扩展了Sonata\AdminBundle\Admin\Admin类而不扩展Symfony\Component\DependencyInjection\ContainerAware类.

请问,如何在奏鸣曲Admin类中获取容器?

现在我通过重写奏鸣曲管理类来解决这个问题,使其扩展ContainerAware.

symfony symfony-sonata symfony-2.1 sonata-admin

22
推荐指数
2
解决办法
2万
查看次数

Sonataadminbundle:同一实体的多个管理部分

我有Page列的实体类type=integer.当我做:

   <service id="sonata.admin.pages" class="Main\ProgramBundle\Admin\PageAdmin">
      <tag name="sonata.admin" manager_type="orm" group="dashboard" label="Pages"/>
      <argument />
      <argument>Main\ProgramBundle\Entity\Page</argument>
      <argument>SonataAdminBundle:CRUD</argument>
  </service>


   <service id="sonata.admin.groups" class="Main\ProgramBundle\Admin\GroupAdmin">
      <tag name="sonata.admin" manager_type="orm" group="stories" label="Groups"/>
      <argument />
      <argument>Main\ProgramBundle\Entity\Page</argument>
      <argument>SonataAdminBundle:CRUD</argument>
  </service>
Run Code Online (Sandbox Code Playgroud)

简而言之,两个部分都在同一实体上工作,除了每个部分都有不同的查询和表单.

但是,即使我选择了PageAdmin,奏鸣曲总是会执行Admin/GroupAdmin.这该怎么做?

symfony symfony-sonata sonata-admin

22
推荐指数
2
解决办法
8569
查看次数

Sonata Admin Bundle:DatePicker范围

如何doctrine_orm_datetime_range在使用jQuery UI datepicker的Sonata Admin Bundle中创建过滤器?

我尝试了以下,但它不起作用:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
        ->add('datumUitgevoerd', 'doctrine_orm_datetime', array('widget' => 'single_text'), null, array('required' => false,  'attr' => array('class' => 'datepicker')))
    ;
}
Run Code Online (Sandbox Code Playgroud)

datepicker jquery-ui-datepicker symfony-sonata symfony-2.1 sonata-admin

22
推荐指数
3
解决办法
2万
查看次数