【问题标题】:Symfony2 Form File Upload into two entitiesSymfony2 表单文件上传到两个实体
【发布时间】:2013-12-25 15:39:24
【问题描述】:

我在 symfony 中有一个表单,我用 ajax/xhr2 将它发送到服务器。它包括一个文本字段和可能的文件(不允许或多个)。因此,我创建了一个名为“post”的实体,其中包含提交的文本、执行此操作的用户和日期/时间。此外,它还与名为“upload”的实体的 OneToMany 关系相关联。

class Post{

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\Column(type="text")
 */
private $text;

/**
 * @ORM\Column(type="datetime")
 */
private $created;

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="posts")
 * @ORM\JoinColumn(name="users", referencedColumnName="id")
 *
 */
private $author;

/**
 * @ORM\OneToMany(targetEntity="Upload", mappedBy="post")
 */
private $uploads;

该实体持有上传文件的所有相关数据。

class Upload
{

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\Column(type="string", length=30)
 */
private $name;

 /**
 * @ORM\Column(type="string", length=255)
 */
private $path;

/**
 * @ORM\Column(type="datetime")
 */
private $date;

/**
 * @ORM\Column(type="string", length=30)
 */
private $type;

/**
 * @ORM\Column(type="integer")
 */
private $size;

在上传实体中,我还按照http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html 中的说明放置了上传方法

现在,当我坚持我的帖子时,帖子类会尝试上传文件,而不是将其留在上传类中。因此,我收到一个错误,即 post 类中不存在 setUploads 方法。当我添加它时,我收到该方法收到 UploadedFile 实例而不是 Upload 的错误。

有没有人对我如何上传文件以我为类建模的方式或如何创建更好的模型有好的建议?

非常感谢!

【问题讨论】:

    标签: php forms symfony file-upload doctrine-orm


    【解决方案1】:

    我写了一篇关于如何将文件上传到 Symfony2 here 的完整说明。正如您猜对的那样,您需要将方法 setUploads() 添加到您的 Post 实体中。上传的文件将链接到 Upload 实体而不是 Post 本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      相关资源
      最近更新 更多