【问题标题】:How to pass form data (not related to Entity Class) in editorjs to symfony controller (Symfony)如何将editorjs中的表单数据(与实体类无关)传递给symfony控制器(Symfony)
【发布时间】:2022-01-18 06:03:41
【问题描述】:

这是连接到数据库的表单

class JsonType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('author')
            ->add('jsondata')
        ;
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults([
            'data_class' => JsonBlog::class,
        ]);
    }
}

还有 HTML

<div>
            {{ form_start(form) }}
            <div class="form-group">
                {{ form_label(form.author) }}
                {{ form_widget(form.author, {'attr': {'class':'form-control'}})}}
            </div>
            <div class="form-group">
                {{ form_label(form.jsondata) }}
                {{ form_widget(form.jsondata, {'attr': {'class':'form-control', 'id':'body'}})}}
            </div>
            <div id="editor"></div>
            <div class="form-group">
                <button class="btn btn-info mt">Submit</button>
            </div>
            {{ form_end(form) }}
        </div>

我添加了&lt;div id="editor"&gt;&lt;/div&gt;,它没有在实体类和数据库中初始化。

我想将&lt;div id="editor"&gt;&lt;/div&gt; 的值传递给控制器​​

function postData() {
    editor.save().then((outputData) => {
        console.log(outputData);
        document.getElementById("body").innerHTML = outputData;
    }).catch((error) => {
        console.log('Failed: ', error)
    });
    
}

我用 JS 函数试过了,但是没用。

【问题讨论】:

  • div 的内容不会在 post 请求中发送。也许在提交表单时使用 javascript 来填充隐藏输入的值?或类似的东西
  • 是的,我已经尝试过了,但它似乎不起作用。

标签: php symfony symfony-forms editorjs


【解决方案1】:

看看:Symfony Form: unmapped field。由于您无法在表单中传递 div 元素,因此您将其转换为不会映射到您的实体的输入。然后您可以在 Controller 中检索它的值。

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 2019-11-19
    • 2020-01-09
    • 2018-10-11
    相关资源
    最近更新 更多