2
A
回答
9
當您創建奏鳴曲一個新塊,你必須聲明它像一個服務,讓你可以注入doctrine.orm.entity_manager
。 我可以告訴你,我注入實體管理器塊的例子:你在services.yml阻止
//My\Bundle\Block\MyBlockService
use Symfony\Component\HttpFoundation\Response;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\BlockBundle\Model\BlockInterface;
use Sonata\BlockBundle\Block\BaseBlockService;
use Sonata\BlockBundle\Block\BlockContextInterface;
class MyBlockService extends BaseBlockService
{
protected $em;
public function __construct($type, $templating, $em)
{
$this->type = $type;
$this->templating = $templating;
$this->em = $em;
}
public function getName()
{
return 'MyBlock';
}
public function getDefaultSettings()
{
return array();
}
public function validateBlock(ErrorElement $errorElement, BlockInterface $block)
{
}
public function buildEditForm(FormMapper $formMapper, BlockInterface $block)
{
}
public function execute(BlockContextInterface $blockContext, Response $response = null)
{
$settings = array_merge($this->getDefaultSettings(), $blockContext->getBlock()->getSettings());
$data = count($this->em->getRepository("MyBundle:Entity")->findAll());
return $this->renderResponse('MyBundle::myblock.html.twig', array(
'block' => $blockContext->getBlock(),
'settings' => $settings,
'data' => $data,
), $response);
}
}
聲明,並注入任何你需要:
//services.yml
sonata.block.service.myblock:
class: My\Bundle\Block\MyBlockService
arguments: [ "sonata.block.service.myblock", @templating, @doctrine.orm.entity_manager ]
tags:
- { name: sonata.block }
聲明你的配置塊。陽明: //config.yml
sonata_block:
default_contexts: [cms]
blocks:
# Enable the SonataAdminBundle block
sonata.admin.block.admin_list:
contexts: [admin]
sonata.block.service.myblock: ~
然後,當然,你必須創建塊模板:
{# myblock.html.twig #}
{% extends 'SonataBlockBundle:Block:block_base.html.twig' %}
{% block block %}
<p>{{ data }}</p>
{% endblock %}
相關問題
- 1. 如何在奏鳴曲管理類中獲取容器實例?
- 2. 自定義主頁奏鳴曲頁面
- 3. 註冊自定義控制器在奏鳴曲管理
- 4. 奏鳴曲
- 5. 在奏鳴曲管理中自定義查詢管理
- 6. 奏鳴曲 - 默認
- 7. 奏鳴曲塊http緩存處理程序sonata.cache.noop未定義
- 8. 奏鳴曲管理自定義列表字段(不是來自實體)
- 9. Symfony2 @UniqueEntity自定義奏鳴曲管理類
- 10. Symfony:多個實體經理(奏鳴曲)
- 11. 奏鳴曲sonata_type_model_list和繼承實體
- 12. 檢索有關奏鳴曲中的奏鳴曲圖像的其他信息
- 13. 重新使用自己的奏鳴曲塊
- 14. 在奏鳴曲編輯視圖中的自定義動作管理組合
- 15. 在奏鳴曲管理器中添加按鈕清除sonata_type_collection上的jQuery:奏鳴曲集合項添加
- 16. 我怎樣才能得到奏鳴曲管理類中的自定義路線
- 17. 在Windows上安裝奏鳴曲xampp
- 18. 只顯示用戶在FormFields奏鳴曲中的特定角色
- 19. 在奏鳴曲管理實體的演示模板中添加自定義窗體
- 20. 奏鳴曲管理塊在儀表板外
- 21. 煩人的奏鳴曲管理行爲
- 22. 奏鳴曲媒體包錯誤
- 23. 奏鳴曲管理type_collection&級聯驗證
- 24. 錯誤奏鳴曲媒體捆綁
- 25. 奏鳴曲類型模型 - 父類別
- 26. 奏鳴曲用戶束,覆蓋
- 27. 奏鳴曲管理表單選項卡
- 28. 無法安裝奏鳴曲媒體包
- 29. 安裝奏鳴曲頁面包
- 30. 我如何重寫奏鳴曲管理