![](/img/trans.png)
[英]SonataAdminBundle sonata_type_collection not showing field
[英]Symfony 3 SonataAdmin show a “Sonata_type_collection” field a readonly in Form edit
我有一个“ Sonata_type_collection”字段,只有所有者可以编辑,我希望管理员只能读取该属性(他可以编辑其他属性)。 除此以外,我什么也找不到:
$formMapper->add('commandeElements', 'sonata_type_collection', array('required'=> true,'by_reference' => false,'attr' => array(
'readonly' => true,
'disabled' => true
)), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position',
));
它以某种方式起作用,无法编辑属性(提交表单时会显示错误消息),但至少可以在视图中编辑按钮“添加”和复选框“删除”以及下拉菜单。
有没有办法做到这一点 ?
您可以在options数组中使用btn_add = false
来隐藏按钮
https://sonata-project.org/bundles/admin/3-x/doc/reference/form_types.html#sonata-type-collection
但我可能会尝试使用细枝检入前端,检查用户是否具有特定角色{% if is_granted('ROLE_ADMIN') %} ... {% endif %}
并启用或禁用表单组件。
我可能会...
{% set disabled = !is_granted('ROLE_YOU_WANT_TO_ALLOW') %} // in your case ROLE_OWNER
然后在渲染时尝试类似...
{{ form_row(yourForm.yourCollectionName, {
'disabled': disabled
}) }}
以树枝模板参考为例
http://symfony.com/doc/current/reference/forms/twig_reference.html#form-variables-reference
这个想法可能会让你做自己想做的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.