2017-06-06 98 views
1

我有以下Laravel代碼,它們從API接收數據並將它們存儲在數據庫中。嘗試在Laravel中分配非對象的屬性5

$sample = Sample::findOrFail($id); 
$new_sample = $request->except('filename'); 

if ($request->file('filename')) { 
    if ($sample->filename) { 
      Storage::disk('documents')->delete($sample->filename); 
    } 
    $file = $request->file('filename'); 
    $extension = $file->getClientOriginalExtension(); 
    $new_sample->filename = $file->getFilename().'.'.$extension; 
    Storage::disk('documents')->put($file->getFilename().'.'.$extension, File::get($file)); 
} 

if (!$sample->update($new_sample)) { 
    throw new HttpException(500); 
} 

我有以下錯誤Attempt to assign property of non-object,我發現,通過註釋掉,我指定的文件名行,錯誤不會再次出現。

$new_sample->filename = $file->getFilename().'.'.$extension;

所以,我想這個問題就在這裏。我也試圖與

$new_sample['filename'] = $file->getFilename().'.'.$extension;

但後來它不保存的文件名。

有什麼想法?

回答

0

由於Request對象中沒有文件,所以出現此錯誤。

這是因爲您使用錯誤的方法來檢查文件。使用hasFile()方法。所以,你需要改變這一點:

if ($request->file('filename')) { 

要這樣:

if ($request->hasFile('filename')) { 
+0

上有請求的文件......這是HTTP的身體我送的一部分:'------ WebKitFormBoundaryb1BbiXbbXXILD1Tr Content-Disposition:form-data; NAME = 「文件名」; filename =「plank-challenge.pdf」 Content-Type:application/pdf' – Tasos

相關問題