如何删除文章中的图像。 OnetoOne协会。我应该在表格中做什么?

how to remove an image in an Article. OnetoOne association. What should I do in the form?

我使用 ->add('file','file') 添加与 ARTICLE 关联的图像。它工作得很好。

但是我应该如何从文章中删除图像。 file 的表单只允许我添加或更改与 ARTICLE 关联的图像。没有选项简单的说:删除图像。
我应该怎么做?

我更多的是寻求方法而不是代码问题,感谢您的帮助

代码

class ArticleType extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
    $builder
       ->add('image', new ImageType());
       ->add('removeimage', 'checkbox', array(
                'label'  => 'Remove the image?',
                'mapped' => false,))
  }
}

.

class ImageType extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
     $builder
        ->add('file', 'file');
  }
}

如果您有时间设置文件上传,那么我建议您 Handle File Uploads with Doctrine。我有一个使用实践的工作项目,如本文所述,并且效果非常好。

如果您想在表单中制作“删除”按钮,只需按照以下简单步骤操作:

首先在您的表单生成器中添加以下行:

->add('save', 'submit', array('label' => 'Save')) // it's for saving article
->add('delete', 'submit', array('label' => 'Delete')) // it's for deleting file

然后在控制器中检查点击了哪个按钮:

if ($form->get('delete')->isClicked()) { // your code here }

而不是你的代码在这里写这样的东西:

$article->getImage()->removeUpload();
$this->getDoctrine()->getManager()->flush();

就是这样!