尝试分配Laravel 5中非对象的属性

尝试分配Laravel 5中非对象的属性,laravel,laravel-5,Laravel,Laravel 5,我有下面的Laravel代码,它从API接收数据并将它们存储在数据库中 $sample = Sample::findOrFail($id); $new_sample = $request->except('filename'); if ( $request->file('filename') ) { if ( $sample->filename ) { Storage::disk('documents')->delete($sample-

我有下面的Laravel代码,它从API接收数据并将它们存储在数据库中

$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);
}
我有以下错误
尝试分配非对象的属性
,我发现通过注释掉分配文件名的行,错误不会再次出现

$new\u sample->filename=$file->getFilename()。$extension

所以,我想问题就在这里。我也试过了

$new\u示例['filename']=$file->getFilename().$extension

但是它不存储文件名


有什么想法吗?

由于请求对象中没有文件,所以出现此错误

这是因为您使用了错误的方法来检查文件。使用方法。因此,您需要改变这一点:

if ( $request->file('filename') ) {
为此:

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

由于请求对象中没有文件,因此出现此错误

这是因为您使用了错误的方法来检查文件。使用方法。因此,您需要改变这一点:

if ( $request->file('filename') ) {
为此:

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

请求中有一个文件。。。这是我发送的http正文的一部分:
----WebKitFormBoundaryb1BbiXbbXXILD1Tr内容处置:表单数据;name=“filename”;filename=“plank challenge.pdf”内容类型:application/pdf
请求中有一个文件。。。这是我发送的http正文的一部分:
----WebKitFormBoundaryb1BbiXbbXXILD1Tr内容处置:表单数据;name=“filename”;filename=“plank challenge.pdf”内容类型:application/pdf