2017-06-06 77 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

相关问题