我正在尝试设置一个表单,根据用户角色需要隐藏某些字段。我正在使用 hook_form_FORM_ID_alter 在我自己的模块中执行此操作。普通文本、电子邮件或链接字段没有问题(例如 $form['field_companyname']['und'][0]['value']['#type']='hidden')。但是对于图像字段或多值文件字段,通常的方法是行不通的。
任何人都可以给我一个线索?
我建议您对元素使用#access,而不仅仅是隐藏该字段。
对于现场公司名称,它将如下所示:
$form['field_companyname']['#access'] = FALSE;
我认为你这样做是错误的。由于您的限制基于角色,您可以只使用权限系统。查看字段权限模块。