2017-06-06 8 views
1

APIからデータを受け取り、データベースに格納する次のLaravelコードがあります。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 コンテンツの処理:フォームデータ。 name = "filename";ファイル名= "plank-challenge.pdf" コンテンツタイプ:application/pdf' – Tasos

関連する問題