2013-12-08 35 views
0

我在symfony中有一個表單,我用ajax/xhr2發送到服務器。它包含一個文本框和可能的文件(無或多個允許的)。因此我創建了一個名爲「post」的實體來存放提交的文本,執行它的用戶和日期/時間。另外,它與一個名爲「upload」的實體有一個OneToMany關係。Symfony2表格文件上傳到兩個實體

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的實例,而不是上傳。

有沒有人有很好的建議如何我可以上傳文件的方式我建模類或如何創建一個更好的模型?

非常感謝!

回答

0

我寫了關於如何上傳文件到Symfony2 here的完整說明。正如您猜對的那樣,您需要將方法setUploads()添加到您的Post實體中。上傳的文件將鏈接到Upload實體,而不是Post本身。