2016-09-18 36 views
0

我有一個DataObject稱爲文檔:保存上傳的文件到DB在自定義的處理器

class Document extends DataObject { 
    private static $db = array(
     'Name' => "varchar" 
    ); 

    private static $has_one = array(
     'Document' => 'File' 
    ); 
} 

而且已經把這前端形式。文件上傳正確,我想保存細節到數據庫。

public function submitDocument($data, $form) { 
    $document = new Document(); 
    $document->Name = $data['Name']; 
    $document->Document = $data['Document']; 
    $document->write(); 
} 

現在名稱被寫入數據庫,但是文檔沒有(它在文件系統中)。我知道我可以只寫了整個事情,因爲字段的名稱都在,但是我想它手工編寫,因爲我想要做更復雜的事情數據庫中的相同。我看着那個進來的屬性:{"Files":["19"]}所以我也試過$data['Document']['Files'][0]這在我的測試日誌爲20但它仍然不會被保存。我也手動嘗試了20進行測試,但也不起作用。我如何保存它?

+0

剛剛發現它,'$文檔 - > DocumentID = $數據[ '文獻'] [ '文件'] [0];' – Rudiger

+1

也來回新數據對象文獻::創建(陣列( '名稱'= > $ name))是一種很好的格式,它有助於嘲笑和控制對象,並且使用getters和setter更快。 – Barry

回答

0
public function submitDocument($data, $form) { 
    $document = new Document(); 
    $document->Name = $data['Name']; 
    $document->DocumentID = $data['Document']['Files'][0]; 
    $document->write(); 
}