复选框形式symfony

时间:2017-07-17 10:00:49

标签: angularjs database forms symfony twig

我有一个后端表单,其中一个与表连接。它是一个配置字段,在里面我们可以找到像json这样的东西。

Database field sample

表单已经存在( 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();
        }
    }
}]);

0 个答案:

没有答案