如何删除文章中的图像。 OnetoOne协会。我应该在表格中做什么?
how to remove an image in an Article. OnetoOne association. What should I do in the form?
我使用 ->add('file','file') 添加与 ARTICLE 关联的图像。它工作得很好。
但是我应该如何从文章中删除图像。 file 的表单只允许我添加或更改与 ARTICLE 关联的图像。没有选项简单的说:删除图像。
我应该怎么做?
- 文件中是否存在将此功能添加到表单中的选项?
- 我是否应该在 ArticleType 中添加一个新字段(映射到 'false',因为它既不是属性也不是实体)该字段允许用户 select 复选框 "remove image" .当值设置为 true 时,我处理删除控制器中的图像?
我更多的是寻求方法而不是代码问题,感谢您的帮助
代码
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();
就是这样!
我使用 ->add('file','file') 添加与 ARTICLE 关联的图像。它工作得很好。
但是我应该如何从文章中删除图像。 file 的表单只允许我添加或更改与 ARTICLE 关联的图像。没有选项简单的说:删除图像。
我应该怎么做?
- 文件中是否存在将此功能添加到表单中的选项?
- 我是否应该在 ArticleType 中添加一个新字段(映射到 'false',因为它既不是属性也不是实体)该字段允许用户 select 复选框 "remove image" .当值设置为 true 时,我处理删除控制器中的图像?
我更多的是寻求方法而不是代码问题,感谢您的帮助
代码
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();
就是这样!