标签: sonata-admin

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万
查看次数

如何在Symfony2中向SonataAdminBundle仪表板添加自定义链接或按钮

我是symfony2和SonataAdminBundle的新手.

我已经向SonataAdminBundle仪表板添加了3个实体,它们显示成功.

实体显示默认链接 - "添加新"和"列表"按钮.

我希望能够做到以下几点

  1. 我想向仪表板上的一个实体添加第三个链接.
  2. 我希望能够在默认列表页面中添加指向网格上方按钮的链接.
  3. 我希望能够添加/自定义出现在编辑或创建新页面下的表单下的链接

我找不到上述任何一种方法,一直在寻找几个小时,任何帮助都将受到高度赞赏.

谢谢.

symfony sonata-admin

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

如何在Sonata Media Bundle中实现多对多关系

我试图将SonataMediaBundle与另一个实体联系起来:与ManyToMany有关系的产品.

架构和关系很好地创建.

但是,当我编辑或创建新产品时,我尝试添加一个按钮,我可以通过媒体库搜索媒体文件,然后使用按钮上传新文件.

对于OneToMany的关系,可以Admin\ProductAdmin::configureFormFields通过添加以下内容轻松完成:

->add('image', 'sonata_type_model_list', array(
                    'required' => false
                ), array(
                    'link_parameters' => array(
                        'context'  => 'default',
                        'provider' => 'sonata.media.provider.image'
                     )
                ))
Run Code Online (Sandbox Code Playgroud)

因此,我获得了与SonataMediaBundle图库中已使用的相同的3个图标(从库中添加,上传删除)

但关于ManyToMany的关系是不可能的!因为每次我选择媒体时,都会取代之前的媒体.所以我无法选择多种媒体类型.

我想和The Gallery一样使用(galleryHasMedia)

->add('galleryHasMedias', 'sonata_type_collection', array(
            'by_reference' => false
        ), array(
            'edit'     => 'inline',
            'inline'   => 'table',
            'sortable' => 'position',
            'link_parameters' => array('context' => $context)
        ))
Run Code Online (Sandbox Code Playgroud)

但是,它真的很复杂.如何通过ManyToMany关系在另一个实体上选择或上传多个媒体文件?

symfony sonata-admin

19
推荐指数
1
解决办法
9268
查看次数

有没有办法在Sonata\AdminBundle\Admin\Admin :: configureFormFields()中确定当前操作(创建或编辑)?

我想为Sonata Admin Bundle中的创建和编辑操作创建不同的字段配置.

有什么方法来确定它除了检查$this->getSubject()->getId()Sonata\AdminBundle\Admin\Admin::configureFormFields()

symfony sonata-admin

18
推荐指数
1
解决办法
6500
查看次数

SonataMediaBundle - 如何上传图片?

可能应该标题为:"SonataMediaBundle - 哪里是失踪的howto?".

我已经使用sonataAdminBundle和sonataDoctrineORMAdminBundle(以及其他一些)制作了一些管理员后端,大部分工作都按预期工作,但我留下文件上传和处理以供日后使用,因为我认为"可能有多难?".

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

文档的第一页以"您可以访问您的管理仪表板"结束,就像我可以期待那里的一些相关更改,可能是媒体经理启动和运行,或者其他什么.但这种情况并非如此.

下一页简要介绍了heplers,然后是另一个页面,其中包含相当复杂的vimeo提供程序案例研究.

我在网上搜索过,我最好能想出来,上传带有ajax弹出窗口的字段,以及上传文件列表.

在我的管理课程中,我有:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
    ->with('general')
        ->add('title')
        ->add('body')
        ->add('categories')
        ->end()
    ->with('media')
        ->add('images', 'sonata_type_model')
Run Code Online (Sandbox Code Playgroud)

在我的新闻课上:

/**
 * @ORM\ManyToMany(targetEntity="Application\Sonata\MediaBundle\Entity\Media")
 */
public $images; 
Run Code Online (Sandbox Code Playgroud)

并实施了所有的yaml配置和路由.

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

我被卡住了.我能够在一两个小时内以简单的sf2创建媒体"经理",但这是另一个项目,并且重写当前的模式意味着从头开始"开始".那么 - 为了使sonataMediaBundle与sonataAdminBundle一起按预期工作怎么办?


编辑:这是我做的事情:

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

<?php

namespace Some\SiteBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;


/**
 * Some\SiteBundle\Entity\News
 *
 * @ORM\Table(name="news")
 */
class News
{
    /** …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-sonata sonata-admin

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

捆绑"ApplicationSonataUserBundle"不存在或未启用

我需要安装SonataUserBundle才能安装SonataNewsBundle.

我一步一步地遵循安装教程,但是我收到了这个错误:

./app/console sonata:easy-extends:generate SonataUserBundle



  [InvalidArgumentException]                                                 
  Bundle "ApplicationSonataUserBundle" does not exist or it is not enabled.  
Run Code Online (Sandbox Code Playgroud)

捆绑包尚未生成.这个命令应该做到!

任何人都知道如何解决这个问题?

symfony symfony-sonata symfony-2.1 sonata-admin

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

使用sonata_type_admin嵌入式管理员停止SonataAdmin/Symfony2创建空对象

首先,我不确定这是Sonata问题还是Symfony2问题,这是我第一次使用Sf2表单来编辑关系.

这是问题所在:

我有两个课程,让我们称之为旧的最爱:CarWheel.Car与Wheel有一个可选的一对一关系(举个例子,就这么说吧......).我已经设置了SonataAdmin,CarAdmin其中包含一个嵌入WheelAdmin使用的类,sonata_type_admin并尝试创建一个Car而不输入任何Wheel数据.

但是,在提交时(在$ form-> bind()/ $ form-> submit()的某个地方,我可以跟踪)Symfony和/或Sonata实例化一个Wheel并试图保持它(其所有值为null) .由于Wheel具有一些非null约束,因此抛出DBALException,抱怨您无法使用null值来插入Wheel.

这很顽皮,我想阻止它发生.如果我没有输入Wheel的任何细节,我不希望幻影轮对我的代码和数据库造成威胁.我期望的是,如果我没有输入任何数据,就没有任何内容可以插入/保留,所以它不会被单独留下.但这不是正在发生的事情...... 任何想法如何将其驯服成合情合理的东西?


这是长版本,包含代码块和所有内容:

ORM定义首先:

# MyNS\MyBundle\Resources\Config\Doctrine\Car.orm.yml
MyNS\MyBundle\Entity\Car:
  type: entity
  repositoryClass: MyNS\MyBundle\Entity\Repositories\CarRepository
  table: test_cars
  id:
    id:
      type:                     integer
      generator:                { strategy: AUTO }
  fields:
    color:
      type:                     string
      length:                   50
    owner:
      type:                     string
      length:                   50
      nullable:                 true
  oneToOne:
    leftFrontWheel:
      targetEntity:             Wheel
      cascade:                  [ persist ]
      joinColumn:
        name:                   leftFrontWheelId
        referencedColumnName:   id


# MyNS\MyBundle\Resources\Config\Doctrine\Wheel.orm.yml
MyNS\MyBundle\Entity\Wheel:
  type: entity
  repositoryClass: MyNS\MyBundle\Entity\Repositories\WheelRepository
  table: test_wheels …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-sonata sonata-admin symfony-2.3

15
推荐指数
1
解决办法
3002
查看次数

在sonata管理包捆绑CRUD中禁用操作

是否有一种简单的方法来禁用给定管理类的某些CRUD操作?例如,我只想要一个通过前端添加的用户列表,而无需手动添加它们.

symfony sonata-admin

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

Sonata Admin Bundle中的标签

我已经开始使用sonata管理包了.它非常方便,易于设置和使用,但我似乎无法修复默认标签的翻译

例如link_add,link_list来了,而不是正确的英文标签.

#SonataAdmin
    sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts: [admin]
        sonata.block.service.text:
        sonata.block.service.rss:

sonata_admin:
    title:      Sonata Project
    title_logo: /bundles/sonataadmin/logo_title.png
    templates:
        # default global templates
        layout:  SonataAdminBundle::standard_layout.html.twig
        ajax:    SonataAdminBundle::ajax_layout.html.twig

        # default actions templates, should extend a global templates
        list:    SonataAdminBundle:CRUD:list.html.twig
        show:    SonataAdminBundle:CRUD:show.html.twig
        edit:    SonataAdminBundle:CRUD:edit.html.twig

    dashboard:
        blocks:
            # display a dashboard block
            - { position: left, type: sonata.admin.block.admin_list }
Run Code Online (Sandbox Code Playgroud)

这是我的配置文件,这些是文档提供的基本默认设置.我在这里缺少什么来为默认视图参数启用标签?任何人都可以帮忙

php symfony sonata-admin

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

Symfony2 - 在Sonata Admin的元素列表中提供默认过滤器

我有一个Vehicle类型的元素列表,我用Sonata Admin显示这些元素.我允许通过"状态"字段过滤这些元素,但是我想要,当显示列表时,只显示活动车辆,如果有人想看到不活动的车辆,则使用过滤器并选择非活动状态.我想知道是否有人知道如何使用Sonata Admin默认为过滤元素列表应用过滤器.

这是我的代码:

public function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('name')
        ->add('status')
    ;
}

protected function configureDatagridFilters(DatagridMapper $mapper)
 {
     $mapper
         ->add('name')
         ->add('status')
     ;
 }
Run Code Online (Sandbox Code Playgroud)

是否有任何选项可以添加到configureDatagridFilters()中的状态字段以实现此目标?其他选择?

提前致谢.

symfony sonata-admin

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