本文介绍了10月CMS创建一个多选表单
字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在10月份的Cms后端表单(fields.yaml)中创建一个多选表单字段。我申请了以下方法:
select_field: label:Sample 类型:dropdown 属性:{multiple:'multiple'}
这个字段的选项将从模型中调用
一切正常,但是当我提交表单时,只有第一个选中的选项被插入为数据库表文本字段中的JSON数据。我希望每个选定的选项都被存储。我也已经声明这个字段在模型中是Jsonable,例如,protected $ jsonable = ['field_name'];
注意:当我使用类型 checkboxlist 时,它按照我的想法工作,但我不想要成为checkboxlist。我是新来的十月cms是否有任何简单的方法..
解决方案
你不能使用具有多个值的下拉字段因为它是为了处理单一的价值。作为复选框和广播这就是为什么有checkboxList(我猜)。
但我找到了一个解决方案。 在fields.yaml中使用partial作为字段类型,而不是下拉菜单
octobercms/docs/backend/forms#field-partial
创建一个部分(注意名称属性中的[]这就是它工作的原因!)
但请注意,这只是一个窍门,您只能使用直接yaml选项分配 octobercms/docs/backend/
<?php $ fieldOptions = $ field-> options (); //将字段值作为数组获取 $ selectedValues =(array)$ field-> value; ?> <! - 下拉菜单 - > <?php if($ this-> previewMode):?> < div class =form-control><?=(isset($ fieldOptions [$ field-> value]))? e(trans($ fieldOptions [$ field-> value])):''?>< / div> <?php else:?>
发布评论