我遇到了Sonata Admin的問題。有沒有辦法禁用「列表視圖」?我想獲取數據庫中的第一個實體,並在點擊側邊欄中的鏈接時繼續。但不是所有的入門。Sonata Admin - 禁用列表視圖
有沒有乾淨的方式來做到這一點? (我有這個想法,以檢查在定製控制器的實體,並重定向取決於實體查看或編輯觀點列出,但是這不是真的乾淨)如果你想爲做一個自定義查詢
我遇到了Sonata Admin的問題。有沒有辦法禁用「列表視圖」?我想獲取數據庫中的第一個實體,並在點擊側邊欄中的鏈接時繼續。但不是所有的入門。Sonata Admin - 禁用列表視圖
有沒有乾淨的方式來做到這一點? (我有這個想法,以檢查在定製控制器的實體,並重定向取決於實體查看或編輯觀點列出,但是這不是真的乾淨)如果你想爲做一個自定義查詢
您列表視圖,您可以覆蓋的createQuery方法在您的管理類這樣的:
class EntityAdmin
{
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$query->andWhere(
$query->expr()->eq($query->getRootAlias() . '.id', ':id')
);
$query->setParameter('id', 1);
return $query;
}
}
你將不得不在你的列表視圖只有你的第一個實體。
UPDATE
您可以覆蓋standard_layout.html.twig改變您的側邊欄的鏈接:
首先,您需要設置您的模板位於:
應用程序/配置/config.yml
sonata_admin:
templates:
layout: ApplicationSonataAdminBundle::standard_layout.html.twig
更改側邊欄的行爲,索納塔2.3管理員這是怎麼你這樣做:
src/Application/Sonata/AdminBundle/Resources/Views/standard_layout.html.twig l.224
<ul class="treeview-menu{% if active %} active{% endif %}">
{% for admin in group.items %}
{% if admin.code == 'sonata.admin.entity' and
admin.hasroute('edit') and
admin.isGranted('EDIT') %}
<li{% if app.request.get('_sonata_admin') == admin.code %} class="active"{% endif %}><a href="{{ admin.generateUrl('edit', {'id' : 1}) }}"><i class="fa fa-angle-double-right"></i> {{ admin.label|trans({}, admin.translationdomain) }}</a></li>
{% else %}
{% if admin.hasroute('list') and admin.isGranted('LIST') %}
<li{% if app.request.get('_sonata_admin') == admin.code %} class="active"{% endif %}><a href="{{ admin.generateUrl('list')}}"><i class="fa fa-angle-double-right"></i> {{ admin.label|trans({}, admin.translationdomain) }}</a></li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
必須由identifier of your admin service改變 'sonata.admin.entity'。
此外,如果你想刪除訪問列表中,您應該添加在您的管理類
use Sonata\AdminBundle\Route\RouteCollection;
class EntityAdmin
{
protected function configureRoutes(RouteCollection $collection)
{
$collection->remove('list');
}
}
謝謝你,但我想避免的列表視圖。我點擊側欄中的鏈接,然後重定向到第一個元素的編輯模式。 – Peekmo 2015-03-13 09:56:08
好吧,我已根據您的需要更新了我的答案。 – HypeR 2015-03-13 10:28:15
非常感謝:) – Peekmo 2015-03-13 10:33:03