我正在使用doctrine继承映射来将各种对象链接到注释实体.这是通过各种具体的"线程"实现的,这些"线程"与注释具有一对多的关系.因此,以"故事"元素为例,会有一个相关的"StoryThread"实体,它可以有很多注释.
这一切都运行正常,但是我在为SonataAdminBundle定义一个可以用作父实体的子级的CommentAdmin类时遇到了麻烦.例如,我希望能够使用以下路由:
/admin/bundle/story/story/1/comment/list
/admin/bundle/media/gallery/1/comment/list
有没有人有任何关于如何实现这一目标的指示?我想发布一些代码摘录,但我没有设法找到任何相关的文档,所以不知道最好的起点.
我一直在尝试使用SonataNewsBundle作为参考,因为他们在帖子和评论之间实现了类似的父/子管理员关系,但似乎这依赖于'评论'(子)管理员类被硬编码到知道它属于帖子,它似乎也需要与父对象有直接的多对一关系,而我的是通过一个单独的"线程"实体.
我希望这是有道理的!谢谢你的帮助.
安装Symfony2 cmf后,当我尝试查看admin/dashboard时出现以下错误:
第95行的SonataAdminBundle :: standard_layout.html.twig中不存在函数"is_granted"
我正在使用Sonata Media Bundle,我需要为图像缩放器编写特定的行为,因为默认的SimpleResizer和SquareResizer类不符合我的需要.
我想要一个简单的图像缩放器,如果我同时指定width和height参数,我可以准确地调整图像大小.我还希望如果我没有指定参数,它可以回退简单的缩放器行为height.
我刚刚搜索了文档,但我找不到解决方案.
任何人都可以告诉我如何扩展和覆盖所有奏鸣曲媒体捆绑功能?我正在使用Symfony2.3.3和Sonata Master Bundle.
我看到这个文档http://sonata-project.org/bundles/media/master/doc/index.html我知道基本的东西:如何编写自定义提供程序,翻译器等等.基本的东西在安装后工作但是我不知道 .
我正在寻找覆盖BaseMediaBundle自定义为例如函数"configureListFields".
我已经覆盖了这个包的控制器,但没有覆盖BaseMediaAdmin.
这段代码的问题是我的仪表板实体"Media"消失了!
//在我的services.xml中:
<service id="sonata.media.admin.media" class="Application\Sonata\MediaBundle\Admin\MediaAdmin">
<tag name="sonata.media.admin" manager_type="orm" group="Gestion des médias"
label="Média" />
<argument />
<argument>Application\Sonata\MediaBundle\Entity\Media</argument>
<argument>Application\SonataMediaBundle:MediaAdmin</argument>
<call method="setTranslationDomain">
<argument>SonataMediaBundle</argument>
</call>
</service>
Run Code Online (Sandbox Code Playgroud)
//在我的Application\Sonata\MediaBundle\Admin\MediaAdmin中
namespace Application\Sonata\MediaBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\AdminBundle\Route\RouteCollection;
use Sonata\MediaBundle\Provider\Pool;
use Sonata\MediaBundle\Form\DataTransformer\ProviderDataTransformer;
use Knp\Menu\ItemInterface as MenuItemInterface;
use Sonata\MediaBundle\Admin\BaseMediaAdmin as BaseMediaAdmin;
class MediaAdmin extends BaseMediaAdmin
{
/**
* {@inheritdoc}
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('custom', 'string', array('template' => 'SonataMediaBundle:MediaAdmin:list_custom.html.twig'))
->add('enabled', 'boolean', …Run Code Online (Sandbox Code Playgroud) 我正在我的项目中使用Sonata Media Bundle和Symfony2.3.当我覆盖youtube提供者sonata.media.provider.youtube时.一切正常.没有错误或任何东西,但在
/Web/uploads/media
Run Code Online (Sandbox Code Playgroud)
没有生成缩略图,但在我的管理仪表板中显示:
/uploads/media/default/0001/01/thumb_9_default_small.jpg.
Run Code Online (Sandbox Code Playgroud)
我不知道如何,但当我不覆盖sonata.media.provider.youtube然后生成缩略图
/web/uploads/media/
Run Code Online (Sandbox Code Playgroud)
喜欢 :
/web/uploads/media/default/0001/01/thumb_9_default_small.jpg.
Run Code Online (Sandbox Code Playgroud)
我不知道为什么?
这是我的配置文件,我在其中创建自定义服务提供者:
services:
sonata.media.provider.youtubecustom:
class: %application_sonata_media.youtubecustom_class%
tags:
- { name: sonata.media.provider }
arguments:
- sonata.media.provider.youtubecustom
- @sonata.media.filesystem.local
- @sonata.media.cdn.server
- @sonata.media.generator.default
- @sonata.media.thumbnail.format
- @sonata.media.buzz.browser
- @sonata.media.metadata.proxy
calls:
- [ setTemplates, [ { helper_thumbnail: SonataMediaBundle:Provider:thumbnail.html.twig,helper_view: SonataMediaBundle:Provider:view_youtube.html.twig } ] ]
parameters:
application_sonata_media.youtubecustom_class: Application\Sonata\MediaBundle\Provider\YoutubeCustomProvider
Run Code Online (Sandbox Code Playgroud)
和SonataMedia.yml:
sonata_media:
db_driver: doctrine_orm # | doctrine_mongodb
default_context: default
contexts:
default: # the default context is mandatory
download:
mode: http # X-Sendfile …Run Code Online (Sandbox Code Playgroud) 我想覆盖默认的SonataAdmin模板.
我在我的Namespace/bundle/resources/views中创建了一个standard_layout.html.twig(相同的结构,相同的文件名,相同的内容)
我在我的目标模板中复制了源模板的所有内容,我只是编辑目标的某些部分......当然没有
谢谢你的帮助再见
使用Symfony2和Sonata,在列表中,字段模板可以被覆盖并将变量分配给模板,即setTemplateVar(),有时可能有用!(不是说'attr'用于此目的的形式,而是列出......)
我想知道将变量传递给在configureListFields方法中为listmapper的给定字段定义的模板的最佳方法是什么?
<?php
namespace Acme\AcmeBundle\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;
class AcmeAdmin extends Admin
{
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('acme_field')
->add('date', 'date', array(
'template' => "AcmeBundle:CRUD:list_date.html.twig",
// 'dateFormat' => "Y-m-d",// ---> how to pass this var to twig ?
))
->add('_action', 'actions', array(
'actions' => array(
'edit' => array(),
'delete' => array(),
),
))
;
}
Run Code Online (Sandbox Code Playgroud)
使用twig模板已经实现了翻译和格式化日期的特定问题的解决方案,如下所示:
{% block field%}
{% if value is empty %}
{% else %}
{# retrieving the …Run Code Online (Sandbox Code Playgroud) 我正在使用Symfony2进行Web项目,我使用Sonata Admin作为管理面板,每件事情都运行正常但我想要做的是,在奏鸣曲管理员的仪表板菜单上,我需要显示隐藏一些菜单依赖于管理员角色,任何人之前做过这个或知道如何做到这一点?我试图使用角色的配置,但当我与ROELE不同的ROLE_SONATA_ADMIN连接时,顶级菜单不显示,
- { path: ^/admin, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN,ROLE_ADMIN_NEWS] }
Run Code Online (Sandbox Code Playgroud)
谢谢
symfony fosuserbundle symfony-sonata sonata-admin symfony-2.3
有什么方法可以在列表视图上显示收集的总数吗?想象有一个用户可以有许多链接。如何在列表视图中显示总链接数?
我正在尝试在实体的列表视图中添加字段类型 url,这是文档中的链接 -> https://symfony.com/doc/master/bundles/SonataAdminBundle/reference/field_types.html#url。
这是我的代码,我只是复制了文档:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name')
->add('url', 'url', [
'url' => 'http://example.com'
]);
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但“Url”列始终为空。
我找到了负责渲染此字段的 Sonata 模板 -> @SonataAdmin/CRUD/list_url.html.twig 。这是代码
{% extends get_admin_template('base_list_field', admin.code) %}
{% block field %}
{% spaceless %}
{% if value is empty %}
{% else %}
{% if field_description.options.url is defined %}
...
Run Code Online (Sandbox Code Playgroud)
问题是value总是空的,我不知道这个变量是什么;并且文档没有讨论任何名为 value 的字段。
symfony-sonata ×10
sonata-admin ×8
symfony ×7
php ×3
admin ×1
listfield ×1
symfony-2.3 ×1
symfony-3.4 ×1