标签: sonata-admin

SonataAdminBundle使用事件订阅服务器

我尝试在SonataAdminBundle表单中设置当前经过身份验证的用户:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
    ->add('title')
    ->add('content')
    ->add('slug')
    //->add('user')
    ;
}
Run Code Online (Sandbox Code Playgroud)

由于我不希望用户选择/选择自己的用户,因此我想在用户发送表单(没有任何用户对象)的过程中设置用户名。(注意:我想以几种形式使用它,所以我需要一个通用的解决方案。)

我现在做的是在阅读以下内容后设置EventListener:http : //symfony.com/doc/current/cookbook/service_container/event_listener.html

class PostListener
{
    protected $container;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }


    public function prePersist(LifeCycleEventArgs $args)
    {
        $entity = $args->getEntity();

        //Get user
        $securityContext = $this->container->get('security.context');
        $user = $securityContext->getToken()->getUser();

        //Set authenticated user as autor
        $entity->setUser($user);
    }
}
Run Code Online (Sandbox Code Playgroud)

包括服务:

post.listener:
  class: Backender\BlogBundle\Listener\PostListener
  calls:
    - [ setContainer, [ @service_container ] ]
  tags:
    - { name: doctrine.event_listener, event: prePersist }
Run Code Online (Sandbox Code Playgroud)

现在不确定这是否正确,因为我不想在要设置用户的地方指定表单。(这个人想在每个表格上设置用户吗?)

经过更多研究,似乎我必须使用这样的事件订阅服务器:http ://symfony.com/doc/2.0/cookbook/form/dynamic_form_generation.html在此示例中,他们使用FormEvents …

symfony symfony-2.1 sonata-admin

0
推荐指数
1
解决办法
5862
查看次数

Sonata管理员有许多属性形式

我正在使用4个entites:

  1. 翻译者
  2. 语言
  3. translator_language
  4. 现场

翻译可以有多种语言.语言可以有很多翻译.可以为站点分配一对翻译/语言.

因此,即使内部没有"真实属性",我也被迫创建translator_language.

class Language {

/**
 * @var \XX\TranslateBundle\Entity\TranslatorLanguage
 * 
 * @ORM\OneToMany(targetEntity="TranslatorLanguage", mappedBy="language")
 */
private $translators;
Run Code Online (Sandbox Code Playgroud)

XX

class Translator {
/**
     * @var XX\TranslateBundle\Entity\TranslatorLanguage
     * 
     * @ORM\OneToMany(targetEntity="TranslatorLanguage", mappedBy="translator")
     */
    private $languages;
Run Code Online (Sandbox Code Playgroud)

XX

class TranslatorLanguage
{

    /**
     * @var XX\TranslateBundle\Entity\Translator
     *  
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Translator", inversedBy="languages")
     * @ORM\JoinColumn(name="translatorID", referencedColumnName="ID", nullable=false)
     */
    private $translator;

    /**
     * @var XX\TranslateBundle\Entity\Language
     *  
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Language", inversedBy="translators")
     * @ORM\JoinColumn(name="languageID", referencedColumnName="ID", nullable=false)
     */
    private $language;


    /**
     * @var XX\TranslateBundle\Entity\TranslatorSite
     * 
     * …
Run Code Online (Sandbox Code Playgroud)

symfony sonata-admin

0
推荐指数
1
解决办法
2498
查看次数

Symfony 2.3/Doctrine2个人翻译无法在Sonata Admin中使用TranslatedFieldType.php

我目前正在研究一个带有doctrine2的symfony2.3项目,试图在Sonata后端实现个人翻译管理.

翻译基于doctrine2可翻译行为模型:https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/translatable.md ,更准确地说是个人翻译.

管理表单使用的是TranslatedFieldType.php的symfony2.3版本.

我的实体类如下:

<?php
namespace Hr\OnlineBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @Gedmo\TranslationEntity(class="Hr\OnlineBundle\Entity\CategoryTranslation")
 */
class Category
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    private $id;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(length=64)
     */
    private $title;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(type="text", nullable=true)
     */
    private $description;

    /**
     * @ORM\OneToMany(
     *   targetEntity="CategoryTranslation",
     *   mappedBy="object",
     *   cascade={"persist", "remove"}
     * )
     */
    private $translations;

    public function __construct()
    {
        $this->translations = …
Run Code Online (Sandbox Code Playgroud)

behavior symfony doctrine-orm sonata-admin symfony-2.3

0
推荐指数
1
解决办法
3957
查看次数

Twig:找不到实体

我创建了一个带有existant数据的新应用程序.

我使用sonatadminbundle列出对象"Formule"的数据网格.在我的对象"Formule"中,我与对象"Contact"有关系.在我的列表中需要显示这种关系.但我知道过去有一些联系人被删除了.我想在我的行datagrid的模板中做这个:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
    {% if object.getContact.name is defined  %}
        {{ object.getContact.name }} //EntityWasNotFound
    {% else %}
        This contact was deleted in the past
    {% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

因此,此错误会在行中返回EntityWasNotFound异常或删除联系人.我不知道是否有联系人.我用"不是空","定义","空"......没什么好的:(

谢谢

symfony twig sonata-admin

0
推荐指数
1
解决办法
2512
查看次数

png 文件无法上传 sonata-media-bundle

我已经设置了sonatamediabundle

当我尝试上传 png 文件时,我可以正确上传 jpg 文件。

它显示错误。

An error has occurred during the creation of item "n/a".
Run Code Online (Sandbox Code Playgroud)

我的config.yml是这样的。我认为我正确设置了 png 文件配置。上传png还有其他检查点吗?

sonata_media:
    # if you don't use default namespace configuration
    #class:
    #    media: MyVendor\MediaBundle\Entity\Media
    #    gallery: MyVendor\MediaBundle\Entity\Gallery
    #    gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia
    default_context: default
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr
    contexts:
        default:  # the default context is mandatory
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file

            formats:
                small: { width: 100 , quality: 70}
                big:   { width: 500 , quality: 70} …
Run Code Online (Sandbox Code Playgroud)

symfony sonata-admin sonata-media-bundle

0
推荐指数
1
解决办法
1169
查看次数

如何从Sonata User Bundle的admin用户创建页面中删除字段?

我在Symfony 2.6应用程序中安装了Sonata Admin BundleUser Bundle.我发现User bundle在中创建了一个bundle src/Application/Sonata/UserBundle.当我进入管理员用户创建页面(admin/sonata/user/user/create)时,我发现了很多字段:

  • 一般
    • 用户名
    • 电子邮件地址
    • 普通密码
  • 轮廓
    • 出生日期
    • 名字
    • 网站
    • 性别
    • 语言环境
    • 时区
    • 电话
  • 社会
    • Facebook Uid
    • Facebook名称
    • Twitter Uid
    • Twitter名称
    • Google+ Uid
    • Google+名称
  • 管理

    • 角色
    • 锁定
    • 过期
    • 启用
    • Credentails过期了
  • 安全

    • 代币
    • 两步验证码

我只需要用户名,电子邮件,密码,组,名字和姓氏来创建管理员用户.如何从该页面中删除其他不必要的字段?

symfony sonata-admin sonata-user-bundle symfony-2.6

0
推荐指数
1
解决办法
2069
查看次数

Sonata用户捆绑包配置错误

我尝试安装Sonata User Bundle,但是执行命令时配置出现问题

app/console sonata:easy-extends:generate SonataUserBundle -d src
Run Code Online (Sandbox Code Playgroud)

git bash显示此错误:

 [Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
  The service "sonata.user.orm.group_manager" has a dependency on a non-exist
  ent parameter "fos_user.model.group.class". Did you mean this: "fos_user.mo
  del.user.class"?
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm fosuserbundle sonata-admin sonata-user-bundle

0
推荐指数
1
解决办法
1432
查看次数