标签: symfony-sonata

Sonata Admin捆绑类型集合定制

例如,我有3个实体:

  • 类别
  • 子目录
  • 产品

在SonataAdminBundle中,我希望能够在编辑子类别时编辑类别和产品时添加子类别.

按照这个想法,我创建了字段,但SonataAdminBundle开始与它们一起玩"Inception".

当我打开类别I时,查看包含相关产品的相关子类别.

在这种情况下,如何切断"产品"字段?

更新:

我的课程(简化)如下所示:

// .../CoreBundle/Admin/CategoryAdmin.php
protected function configureFormFields(FormMapper $formMapper) {
    $formMapper
    ->add('name', null, array('required' => true))
    ->add('url', null, array('required' => true))
    ->add('subcategories', 'sonata_type_collection', array('by_reference' => true),     array(
  'edit' => 'inline',
  'sortable' => 'pos',
  'inline' => 'table',));
}


// .../CoreBundle/Admin/SubcategoriesAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
            ->add('name', null, array('label' => 'name'))
            ->add('category_id', null, array('label' => 'Category'))
            ->add('url', null, array('label' => 'Url'))
            ->add('products', 'sonata_type_collection',
                  array('by_reference' => false),
                  array(
                       'edit' => 'inline',
                       'sortable' => 'pos',
                       'inline' …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-sonata sonata-admin

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

Sonata Admin - 仅允许显示登录用户创建的内容

我设置了一个奏鸣曲管理界面,允许用户创建特定内容,但如何限制用户编辑其他用户创建的内容?

为了论证,用户登录并创建博客.在博客的列表视图中,只有博客应显示用户创建.

目前,一切都显示给每个用户 - 我确实有组/角色设置来限制对管理区域的访问,这很好.

我目前只能想到显示特定登录用户内容的唯一方法是覆盖模板?

但是,当然,这是一个明显而简单的配置设置?

symfony-sonata sonata-admin

7
推荐指数
1
解决办法
8787
查看次数

如何将JS代码添加到实体表单?

我有一个实体.当实体在弹出窗口中加载时,我需要执行一些JS代码.有没有办法通过管理类配置将自定义JS/HTML代码添加到实体表单.例如,传递模板作为选项

symfony symfony-sonata

6
推荐指数
1
解决办法
4550
查看次数

如何在SonataAdmin中创建自定义DataGrid筛选器

我有一个包含大量状态代码的实体交易.我希望用户能够在SonataAdmin中将这些状态代码看作字符串.用户还应该能够根据这些状态代码进行过滤.

Entity Transaction 
{
    const TRANSACTION_STATUS_WAITING = 1;
    const TRANSACTION_STATUS_PENDING = 2;
    const TRANSACTION_STATUS_CONFIRMED = 3;

   /**
     * Set status
     *
     * @param smallint $status
     */
    public function setStatus($status)
    {
        $this->status = $status;
    }

    /**
     * Get status
     *
     * @return smallint 
     */
    public function getStatus()
    {
        return $this->status;
    }

    public function getStatusAsString()
    {
        switch($this->status){
            case(self::TRANSACTION_STATUS_WAITING): return "Waiting for Merchant";
            case(self::TRANSACTION_STATUS_PENDING): return "Pending Confirmation";
            case(self::TRANSACTION_STATUS_CONFIRMED): return "Confirmed";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经配置了我的Sonata List Mapper,如下所示:

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('id') …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-sonata

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

如何使用sonata媒体捆绑我的实体

我想在我的捆绑包中使用sonata媒体包作为媒体.

我有一个应该有一个画廊的实体.安装奏鸣曲媒体包并生成easy:extends后,有3个不同的实体:

  • 忽略原始
  • Gallery.php
  • GalleryHasMedia.php.

如何将这些实体链接到我自己的实体以进行库实现???

symfony-sonata

6
推荐指数
1
解决办法
8372
查看次数

SonataUser - 扩展管理员

我正在尝试修改User实体的默认管理员.
只需要从表单中删除某些字段.

我想这个文档对我来说将是有用的.
现在我已创建此管理员并尝试覆盖默认管理员User.

应用程序/应用/索纳塔/ UserBundle /管理/型号/ UserAdmin.php

namespace Application\Sonata\UserBundle\Admin\Model;

use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\UserBundle\Admin\Model\UserAdmin as BaseType;

class UserAdmin extends BaseType
{
    /**
     * {@inheritdoc}
     */
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('username')
            ->add('groups')
            ->add('enabled')
        ;
    }

    /**
     * {@inheritdoc}
     */
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('username')
                ->add('email')
                ->add('plainPassword', 'text', array('required' => false))
            ->end()
            ->with('Groups')
                ->add('groups', 'sonata_type_model', array('required' => false))
            ->end()
            ->with('Profile')
                ->add('firstname', null, array('required' => false)) …
Run Code Online (Sandbox Code Playgroud)

php symfony symfony-sonata sonata-admin

6
推荐指数
1
解决办法
5514
查看次数

路径"admin/login"不存在错误Symfony2 + SonataAdminBundle

我按照教程进行设置 SonataAdmin,FosUer
FosUser似乎可以进行连接和断开连接

但是对于Sonata我无法访问
> my_host/web/app_dev.php/admin/dashboard
当我尝试将防火墙重定向到:my_host/web/app_dev.php/admin/login

并抛出一个错误:
Route "admin/login" does not exist.
500 Internal Server Error - RouteNotFoundException

Routing.yml看起来正确:

admin:
     resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
     prefix: /admin
_sonata_admin:
     resource: .
     type: sonata_admin
     prefix: /admin
soanata_user:
     resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
     prefix: /admin[/xml]
Run Code Online (Sandbox Code Playgroud)

Config.yml:

sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]
        sonata.block.service.text:
        sonata.block.service.action:
        sonata.block.service.rss:
sonata_admin:
    title:      Admin Panel
    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
fos_user: …
Run Code Online (Sandbox Code Playgroud)

routing admin symfony symfony-sonata sonata-admin

6
推荐指数
1
解决办法
4598
查看次数

扩展的Sonata用户类中的注释未被读取

我使用Sonata EasyExtends软件包从Sonata项目扩展了用户包.它默认放在src/Application/Sonata/UserBundle下

现在我想自定义扩展类并添加一些字段.我注意到注释没有被处理,我需要在src/Application/Sonata/UserBundle/Resources/config/doctrine/User.orm.xml中定义映射

有没有办法使用注释而不是XML文件?我认为它将通过引用用户类来解决我的许多问题,就像现在的命令一样

php app/console doctrine:schema:update --force

似乎没有认识到注释..

symfony-sonata

6
推荐指数
1
解决办法
2549
查看次数

根据用户角色在仪表板上显示项目

我是Symfony2的新手,为了满足我公司的需求,我正在使用Sonata Admin和User捆绑包.

我想知道是否可以根据已登录用户的角色隐藏或显示仪表板上的项目.

例如,我有几个由Sonata AdminBundle(用户,公司,任务,站点等管理)管理的实体,我想将用户管理仅显示给超级管理员,公司和站点管理到另一个角色(例如SITE_ADMIN)和第三个角色的任务.

你有没有遇到过这种情况?你能给我一个直接解决方案的解决方案或线索吗?

非常感谢,

埃内斯

php symfony symfony-sonata sonata-admin sonata-user-bundle

6
推荐指数
1
解决办法
3750
查看次数

通过学说映射继承删除列

我想要做的是通过从 ProductTable 中删除不必要的字段来优化我的数据库。

我的应用程序基于 Sonata 电子商务。我想从 Product 实体中删除“shortDescription”字段。映射是在供应商中定义的,因此我无法轻松删除该字段。

我试过:

       <attribute-override name="rawShortDescription">
            <field />
        </attribute-override>
Run Code Online (Sandbox Code Playgroud)

它不起作用。

在学说文档中,写到没有可能的方法来覆盖列类型。这是否意味着我无法删除字段?

是否可以删除供应商中定义的字段?

doctrine symfony doctrine-orm symfony-sonata

6
推荐指数
0
解决办法
1267
查看次数