[英]The show action of Symfony 2 Sonata Admin Bundle is not working
I'm integrating Sonata Admin Bundle into my Symfony 2.6 application by following Symfony 2 jobeet tutorial . 我正在通过遵循Symfony 2 jobeet教程将Sonata Admin Bundle集成到我的Symfony 2.6应用程序中。 Everything is fine except the Show action .
一切都很好,除了Show动作 。 I have an entiry "Job" and so I have
src/Ibw/JobeetBundle/Admin/JobAdmin.php
which have a function configurShowField(ShowMapper $showMapper)
like below 我有一个entiry“Job”,所以我有
src/Ibw/JobeetBundle/Admin/JobAdmin.php
,它有一个函数configurShowField(ShowMapper $showMapper)
如下所示
<?php
namespace Ibw\JobeetBundle\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 Ibw\JobeetBundle\Entity\Job;
class JobAdmin extends Admin
{
// ....
protected function configureShowField(ShowMapper $showMapper)
{
$showMapper
->add('category')
->add('type')
->add('company')
->add('webPath', 'string', array('template' => 'IbwJobeetBundle:JobAdmin:list_image.html.twig'))
->add('url')
->add('position')
->add('location')
->add('description')
->add('how_to_apply')
->add('is_public')
->add('is_activated')
->add('token')
->add('email')
->add('expires_at')
;
}
// ....
}
When I click the Show button and go to the view page (admin/ibw/jobeet/job/xxx/show), it shows none of the fields. 当我单击“显示”按钮并转到视图页面(admin / ibw / jobeet / job / xxx / show)时,它不会显示任何字段。 The original template processed is
/vendor/sonata-project/admin-bundle/Resources/views/CRUD/base_show.html.twig
: 处理的原始模板是
/vendor/sonata-project/admin-bundle/Resources/views/CRUD/base_show.html.twig
:
{% extends base_template %}
{% block actions %}
<li>{% include 'SonataAdminBundle:Button:edit_button.html.twig' %}</li>
<li>{% include 'SonataAdminBundle:Button:history_button.html.twig' %}</li>
<li>{% include 'SonataAdminBundle:Button:list_button.html.twig' %}</li>
<li>{% include 'SonataAdminBundle:Button:create_button.html.twig' %}</li>
{% endblock %}
{% block tab_menu %}{{ knp_menu_render(admin.sidemenu(action), {'currentClass' : 'active', 'template': admin_pool.getTemplate('tab_menu_template')}, 'twig') }}{% endblock %}
{% block show %}
<div class="sonata-ba-view">
***
{{ sonata_block_render_event('sonata.admin.show.top', { 'admin': admin, 'object': object }) }}
{% for name, view_group in admin.showgroups %}
<table class="table table-bordered">
{% if name %}
<thead>
{% block show_title %}
<tr class="sonata-ba-view-title">
<th colspan="2">
{{ admin.trans(name) }}
</th>
</tr>
{% endblock %}
</thead>
{% endif %}
<tbody>
{% for field_name in view_group.fields %}
{% block show_field %}
<tr class="sonata-ba-view-container">
{% if elements[field_name] is defined %}
{{ elements[field_name]|render_view_element(object) }}
{% endif %}
</tr>
{% endblock %}
{% endfor %}
</tbody>
</table>
{% endfor %}
{{ sonata_block_render_event('sonata.admin.show.bottom', { 'admin': admin, 'object': object }) }}
</div>
{% endblock %}
The inner content of <div class="sonata-ba-view"></div>
is not shown except three asterisks I printed. 除了我打印的三个星号外,没有显示
<div class="sonata-ba-view"></div>
的内部内容。 Is there any configuration I'm missing? 有什么配置我不见了?
You're missing as in your function's name. 你在函数的名字中缺少了。
it's 它的
configureShowFields(FormMapper $formMapper)
not 不
configureShowField(FormMapper $formMapper)
Try to add call in your admin.yml 尝试在admin.yml中添加呼叫
ibw_jobbeet.admin.jobadmin:
class: Ibw\JobeetBundle\Admin\JobAdmin
...
calls:
- [ setTemplate, ['show', path_to_your_view.html.twig]]
Read more about templates in SonataAdmin 阅读SonataAdmin中有关模板的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.