【发布时间】: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