如何保存我的Symfony 2系列?

时间:2016-04-12 12:45:59

标签: jquery symfony

我觉得我对Symfony 2如何解决这个问题感到有些困惑,现在我对如何保存这个集合很感兴趣。

我使用的是Symfony 2.7.10

我有一个表单,我已经复制了,所以有两种表单类型,第二种设置有一个集合,我可以用JQuery添加到表单中。

我的表格代码: - 这是我呈现的表格

public function buildForm(FormBuilderInterface $builder, array $options) {
      $builder
        ->add('input1', 'text', ['label' => 'xxxx:'])
        ->add('input2', 'text', ['label' => 'xxxx:'])
        ->add('inputcol', 'collection', [
                                        'type' => new AddInputsType(),
                                        'allow_add' => true,
                                        'allow_delete' => true,
                                        'prototype' => true,
                                        'label' => false,
                                        'mapped' => false
                                        ]);
}

这是inputcol集合

的表单
public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
        ->add('input1', 'test', ['label' => 'Other1:'])
        ->add('input2', 'text', ['label' => 'Other2:']);
}

这是在我的模板中呈现的表单

{{ form_start(FormTest) }}

     <span id="testMe" data-count="1" data-prototype="{{ form_widget(FormTest.inputcol.vars.prototype)|e }}">
        {% for emailField in FormTest.inputcol %}
            {{ form_errors(emailField) }}
            {{ form_widget(emailField) }}
        {% endfor %}
    </span>

    <span class="ContentHere"></span>

    <div class="form-group">
        <div id="addNew" class="btn">ADD</div>
    </div>

{{ form_end(FormTest) }}

我认为该代码是从Symfony 2文档编码的。

这是我的JQuery代码

var testAJAX = function() {
  $('#addNew').on('click', function() {
    var GetDataCount = parseInt( $('#testMe').attr('data-count') );
    var emailList = $('#testMe');
    var newWidget = emailList.attr('data-prototype');

        newWidget = newWidget.replace(/__name__/g, GetDataCount);

    var newCount = GetDataCount + 1;
    $('#testMe').attr('data-count', newCount);

    var newLi = $('.ContentHere').append(newWidget);
  });
};

testAJAX();

同样,我认为这也来自文档,但我已编辑以使用data-count标记计算循环。我这样做主要是因为这个代码是使用Grunt Task运行的,它不喜欢Twig模板代码。

这一切似乎都没有任何问题,但是我知道有点混淆了如何使用我的实体保存这些数据。

这是我的控制器代码的外观,

public function AdminHomeAction(Request $MyRequest) {

    $GetEn = new EntityHere();
    $ActionURL = $this->generateUrl('dashboard');
    $Form = $this->createForm(new AddTestType(), $GetEn, ['action' => $ActionURL])
                         ->add('save', 'submit', ['label' => 'SAVE',
                                                  'attr' => ['class' => 'SaveButton'],
                                                 ]);

    $Form->handleRequest($MyRequest);

    if ($Form->isValid()) {
            $test = $MyRequest->get('xxxxx')['xxxxx'];

            dump(  $test );

            dump( $_POST );

            die();
    }

    return $this->render('Bundle:home.html.twig', ['FormTest' => $Form->createView()]);
}

现在我知道我的JQuery看起来工作正常(或者至少我认为它是)。它可以添加我想要的许多输入,我可以使用$_POST和Symfony 2 Request访问该数据。

但是当我尝试访问实体时,它总是空的?如何将发布数据中的数据绑定回实体?或者我做错了什么?

欢迎大家帮忙

感谢。

1 个答案:

答案 0 :(得分:1)

  

但是当我尝试访问实体时,它总是空的?我如何能   将我的发布数据中的数据绑定回实体?还是我做完了   有什么不对吗?

当'mapped'=&gt; false然后请求中的值不与实体

绑定