【发布时间】:2013-10-17 07:25:44
【问题描述】:
谁能告诉我如何扩展和覆盖所有奏鸣曲媒体捆绑功能? 我正在使用 Symfony2.3.3 和 Sonata Master Bundle。
我看到了这个文档http://sonata-project.org/bundles/media/master/doc/index.html 和 我知道基本的东西,比如:如何编写自定义提供程序、翻译器等。安装后基本的东西都可以工作,但我不知道。
我正在寻找将 BaseMediaBundle 覆盖为自定义,例如函数“configureListFields”。
我已经覆盖了这个包的控制器,但不是 BaseMediaAdmin。
此代码的问题是我的仪表板中的实体“媒体”消失了!
//在我的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>
//在我的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', array('editable' => true))
->add('_action', 'actions', array(
'actions' => array(
'view' => array(),
'edit' => array(),
'delete' => array(),
)
))
;
}
}
有人提出同样的问题:https://groups.google.com/forum/#!topic/sonata-users/l3D_Vrd0Hm4
我用谷歌搜索但没有找到。有谁知道吗?
谢谢!
【问题讨论】:
-
嗨,Kunwar,你解决了这个问题吗?
-
@jribeiro 是的,我解决了。
-
你还没有告诉任何地方你是如何解决这个问题的 - 对其他人没有帮助。
标签: symfony sonata-admin symfony-sonata