我有一个后端表单,其中一个与表连接。它是一个配置字段,在里面我们可以找到像json这样的东西。
表单已经存在( limitHours字段工作正常,你可以看看下面是如何声明的。)
所以,我刚刚添加了这个新标志enable_rotation_system。
以我的形式:
->add('limitHours', 'number', array('required' => false, 'mapped'=>false , 'label' => 'Heure limite positionnement'))
->add('enable_rotation_system', 'checkbox', array('required' => false, 'mapped' => false , 'label' => 'Activer les rotations'))
在视图中:
<span class="input text fullWidth">
{{ form_label(form.posConfiguration.limitHours) }}{{ form_errors(form.posConfiguration.limitHours) }}
{{ form_widget(form.posConfiguration.limitHours, {'attr': {'value': posConfigurations['configuration']['limitHours'] }} ) }}
</span>
<span class="checkboxInput">
{{ form_widget(form.posConfiguration.enable_rotation_system , {'attr': {'value': posConfigurations['configuration']['enable_rotation_system'] }} ) }}
{{ form_label(form.posConfiguration.enable_rotation_system) }}{{ form_errors(form.posConfiguration.enable_rotation_system) }}
</span>
会发生什么:当我发送带有复选框勾选的表单时,然后在数据库字段中,我得到:&#34; enable_rotation_system&#34;:&#34;&#34; 但是,这里预计是真的或者可能是1 ....
现在,如果我发送我的表单并且我的复选框没有勾选,那么在数据库字段中,enable_rotation_system标志不再存在。只有&#34; limitHours&#34;:&#34; 18&#34;仍然存在。
感谢您的帮助。
编辑:我不确定如何发送数据,但我认为使用了角度。{{ form_start(form, { 'attr': {'ng-app': 'moduleApp', 'ng-controller': 'MainCtrl as ctrl', 'novalidate': 'novalidate' } }) }}
在底部我得到了这个
angular.module('moduleApp').controller('MainCtrl', ['$scope', function($scope){
var self = this;
self.posConfig = {{ posConfigurations|json_encode|raw }};
self.moduleConfig = {{ configuration|raw }};
self.submitForm = function(event, form) {
if (form.$valid) {
$("#cpn_corebundle_moduleinstance_configuration").val(JSON.stringify(self.moduleConfig));
} else {
event.preventDefault();
}
}
}]);