标签: sonata-admin

Sonata用户 - 使用安全性自定义管理查询

我已经扩展了SonataUserBundle,我想自定义Admin查询来限制列表:

class UserAdmin extends BaseUserAdmin
{
// ...
    public function createQuery($context = 'list')
    {
        $query = parent::createQuery($context);
        $query->andWhere( 
            $query->expr()->eq($query->getRootAlias().'.company', ':comp')
        );
        $query->setParameter('comp', $securityContext->user->getCompany());
        return $query;
    }
// ...
}
Run Code Online (Sandbox Code Playgroud)

在这里,我试图让用户只看到他公司的用户.
但是$securityContext没有设定.

有人可以告诉我如何将安全上下文注入我的管理类吗?

security symfony sonata-admin sonata-user-bundle

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

Wkhtmltopdf重定向到symfony2中的登录页面

我正在使用wkhtmltopdf在我的应用程序中生成pdf报告,但是当生成pdf时,我在pdf中获得了登录页面.

这是我的行动:

public function exportPdfAction($id = 0)
{
    $em = $this->container->get('doctrine')->getEntityManager();
    $id = $this->get('request')->get($this->admin->getIdParameter());
    $object = $this->admin->getObject($id);


    if (!$object) {
        throw new NotFoundHttpException(sprintf('unable to find the object with id : %s', $id));
    }

    if (false === $this->admin->isGranted('VIEW', $object)) {
        throw new AccessDeniedException();
    }

    $pageUrl = $this->generateUrl('admin_rh_leave_conge_show', array('id'=>$id), true); // use absolute path!

     return new Response(
        $this->get('knp_snappy.pdf')->getOutput($pageUrl),
        200,
        array(
            'Content-Type'          => 'application/pdf',
            'Content-Disposition'   => 'attachment; filename="Fiche_conge.pdf"'

        )
    );   
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

php wkhtmltopdf symfony sonata-admin

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

如何在SonataAdminBundle列表视图中处理每个实体?

如何将一些代码应用于管理员列表视图中显示的每个实体?

例如,如果我有一个TagManager并且需要为正在显示的每个实体加载标签,我该怎么做?是否有一种方法可以覆盖实体的管理员,还是可以绑定到某些列表格式事件?我找不到一个可以做到的地方.

我不想绑定到实体的onLoad事件.

symfony symfony-sonata sonata-admin

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

Sonata sonata_type_model_list显示对象名称

我试着遵循这个教程:http://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/form_field_definition.html#advanced-usage-many-to-one来创建多个到 -一个表格领域.

但是在选择对象后,我得到了奇怪的选择值,如下面的屏幕截图所示.

在此输入图像描述

实体StyleCategory有属性name,我希望它显示在那里而不是FQCN.怎么做?

php symfony symfony-sonata sonata-admin

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

如何在sonataAdmin中的configureListfield中添加ManyToOne属性字段

我有一个Fonctionnaire实体类,它包含GradeToOne属性到Grade实体类.当我想将idGrade字段添加到FonctionnaireAdmin的ConfigureListField时(使用SonataAdmin)我收到此错误:

在SonataDoctrineORMAdminBundle中,在渲染模板期间抛出了一个异常("你必须在服务examens.examens.admin.fonctionnaire中为字段选项idGrade associated_property创建一个选项或创建Proxies\__CG__\Examens\ExamensBundle\Entity\Grade::__toString方法"):CRUD:list_orm_many_to_one.html.twig at第19行.

Fontionnaire.php类:

<?php

 namespace Examens\ExamensBundle\Entity;


 use Doctrine\ORM\Mapping as ORM;

 /**
 * Fonctionnaire
  */
class Fonctionnaire
{
 //...//

 /**
 * @var \Examens\ExamensBundle\Entity\Grade
 */
private $idGrade;
//...//
}
Run Code Online (Sandbox Code Playgroud)

FonctionnaireAdmin.php:

    <?php

    namespace Examens\ExamensBundle\Admin;

    use Sonata\AdminBundle\Admin\Admin;
    use Sonata\AdminBundle\Datagrid\ListMapper;
    use Sonata\AdminBundle\Datagrid\DatagridMapper;
    use Sonata\AdminBundle\Validator\ErrorElement;
    use Sonata\AdminBundle\Form\FormMapper;
    use Sonata\AdminBundle\Show\ShowMapper;
    use Examens\ExamensBundle\Entity\Fonctionnaire;

class FonctionnaireAdmin extends Admin
{
     protected $datagridValues = array(
        '_sort_order' => 'ASC',
        '_sort_by' => 'codeFonctionnaire'
     );
     protected function configureFormFields(FormMapper $formMapper)
     {
        $formMapper
        ->add('nomAr','text',array('label'=>'Nom arabe'))
        ->add('prenomAr','text',array('label'=>'Prénom arabe'))
        ->add('nomFr','text',array('label'=>'Nom français '))
        ->add('prenomFr','text',array('label'=>'Prénom …
Run Code Online (Sandbox Code Playgroud)

sonata-admin

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

在sonata管理包中列出图像

我是Symfony的新手并试图在sonata管理包中列出图像.但我有点混淆如何在twig文件中获取一个对象,以便我可以得到我的图像源的确切路径.

这是我的代码

protected function configureListFields(ListMapper $listMapper)
    {
//        $image = $this->getSubject();
        $listMapper
            ->addIdentifier('caption')
                ->add('image','string', array('template' => 'swaamImageUploaderBundle:Admin:list_image.html.twig'))
        ;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的list_image.html.twig文件

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

{% block field%}

    <img src="{{ 'uploads/images/822b23a922f43bb664cb58ca57de6cccccc962e5.jpeg'}}">

     {#<img src="{{  asset(image.getthumbWebPath) }}">#}


{% endblock %}
Run Code Online (Sandbox Code Playgroud)

在我的图像源标签中,我为测试提供了硬编码路径.但不知道如何从db获取路径.

另外,当我只写 - >添加('图像')在控制器中我从后端显示的db获取我的确切路径.

我有一个实体图像.

谁能帮帮我?

php symfony sonata-admin

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

Sonata中不存在对象"Knp\Menu\MenuItem"的方法"currentAncestor"

我是Symfony2的新手,我刚刚将它与fosUserBUndle 1.3.3,Sonata Admin BUndle和Sonata User BUndle一起安装.现在我收到一个我无法解决的错误.

这是我的错误:

(url localhost:8000/profile /):

Method "currentAncestor" for object "Knp\Menu\MenuItem" does not exist in 

SonataBlockBundle:Block:block_side_menu_template.html.twig at line 29
Run Code Online (Sandbox Code Playgroud)

我能够成功登录,但登录后我收到此错误.任何帮助将不胜感激.

谢谢

login user-profile symfony sonata-admin sonata-user-bundle

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

如何在Sonata Admin中正确配置'sonata_type_collection'字段

简而言之:

当我在OneToMany关系中使用'sonata_type_collection'时,我必须指定关系的另一面,在"创建操作"中仍然不存在,并且可以设置"更新操作",但也可以完全指定不同的父母.

更详细的解释:

我正在使用Sonata Admin Bundle进行CRUD操作,并且假设我只有Post(id,title,content)和Tag(id,post_id,title)实体.我希望能够在编辑Post实体时添加和删除标记实体,因此我使用'sonata_type_collection'字段.

这是PostAdmin类的configureFormFields方法:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper                           
            ->add('title')
            ->add('content')
            ->add('tags', 'sonata_type_collection', array(), array(
                'edit' => 'inline',
                'inline' => 'table'
            ))  
        ))                
    ; 
}
Run Code Online (Sandbox Code Playgroud)

问题是在创建表单中,当我添加新标签时,我必须指定帖子和标题,但邮件仍然不存在,所以我无法添加标签.当我正在编辑帖子时,我可以添加新标签,但是对于其中的每一个,我都必须明确设置帖子,并且我能够为完全不同的帖子添加标签.

你能告诉我如何解决这个问题吗?

symfony symfony-sonata sonata-admin sonata

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

SonataAdminBundle显示字段作为标签

我有枚举字段status,我想在label label-infoHTML中显示.就像它显示的布尔值(红色或绿色).

在那里演示他们有很多标签,但我找不到如何添加它们.

在此输入图像描述

view symfony symfony-sonata sonata-admin

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

CSS Sonata管理员

我想知道为什么更改SonataAdmin CSS时仪表板不更改颜色。

它考虑了CSS: - bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black.min.css

但是例如,如果我尝试调用该文件:skin-blue.min.css 文件存在时什么也没发生:/

我一点都不明白。

这是我的config.yml:

sonata_admin:
security:
    handler:              sonata.admin.security.handler.noop
    acl_user_manager:     null
title:                'CheerUp!'
title_logo:           favicon.ico
templates:
    user_block:           'SonataAdminBundle:Core:user_block.html.twig'
    add_block:            'SonataAdminBundle:Core:add_block.html.twig'
    layout:               'SonataAdminBundle::standard_layout.html.twig'
    ajax:                 'SonataAdminBundle::ajax_layout.html.twig'
    dashboard:            'SonataAdminBundle:Core:dashboard.html.twig'
    search:               'SonataAdminBundle:Core:search.html.twig'
    list:                 'SonataAdminBundle:CRUD:list.html.twig'
    filter:               'SonataAdminBundle:Form:filter_admin_fields.html.twig'
    show:                 'SonataAdminBundle:CRUD:show.html.twig'
    show_compare:         'SonataAdminBundle:CRUD:show_compare.html.twig'
    edit:                 'SonataAdminBundle:CRUD:edit.html.twig'
    preview:              'SonataAdminBundle:CRUD:preview.html.twig'
    history:              'SonataAdminBundle:CRUD:history.html.twig'
    acl:                  'SonataAdminBundle:CRUD:acl.html.twig'
    history_revision_timestamp:  'SonataAdminBundle:CRUD:history_revision_timestamp.html.twig'
    action:               'SonataAdminBundle:CRUD:action.html.twig'
    select:               'SonataAdminBundle:CRUD:list__select.html.twig'
    list_block:           'SonataAdminBundle:Block:block_admin_list.html.twig'
    search_result_block:  'SonataAdminBundle:Block:block_search_result.html.twig'
    short_object_description:  'SonataAdminBundle:Helper:short-object-description.html.twig'
    delete:               'SonataAdminBundle:CRUD:delete.html.twig'
    batch:                'SonataAdminBundle:CRUD:list__batch.html.twig'
    batch_confirmation:   'SonataAdminBundle:CRUD:batch_confirmation.html.twig'
    inner_list_row:       'SonataAdminBundle:CRUD:list_inner_row.html.twig'
    outer_list_rows_mosaic:  'SonataAdminBundle:CRUD:list_outer_rows_mosaic.html.twig'
    outer_list_rows_list:  'SonataAdminBundle:CRUD:list_outer_rows_list.html.twig'
    outer_list_rows_tree:  'SonataAdminBundle:CRUD:list_outer_rows_tree.html.twig'
    base_list_field:      'SonataAdminBundle:CRUD:base_list_field.html.twig'
    pager_links:          'SonataAdminBundle:Pager:links.html.twig'
    pager_results: …
Run Code Online (Sandbox Code Playgroud)

css sonata-admin

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