Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2表单文件上载到两个实体_Php_Forms_Symfony_File Upload_Doctrine Orm - Fatal编程技术网

Php Symfony2表单文件上载到两个实体

Php Symfony2表单文件上载到两个实体,php,forms,symfony,file-upload,doctrine-orm,Php,Forms,Symfony,File Upload,Doctrine Orm,我有一个symfony格式的表单,用ajax/xhr2发送到服务器。它包括一个文本字段和可能的文件(不允许有或多个)。因此,我创建了一个名为“post”的实体,它保存提交的文本、用户以及日期/时间。此外,它还与名为“upload”的实体的OneToMany关系相关联 此实体保存上载文件上的所有相关数据 在上传实体中,我还放置了上传方法,如上所述 现在,当我坚持我的帖子时,post类尝试上传文件,而不是将其留在upload类中。因此,我得到一个错误,即post类中不存在任何方法setUploads

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

此实体保存上载文件上的所有相关数据

在上传实体中,我还放置了上传方法,如上所述

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

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


多谢各位

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

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;