JING
JING

Reputation: 51

Method save() does not exist in using image intervention

New to laravel here. I'm trying to save an image in the models and in the folder in the project. Seems like it only saves in the folder but returning BadMethodCallException in Macroable.php line 74: Method save does not exist. whenever i save it to database. Any help is very much appreciated!

    public function itemPicture(Request $request)
  {
    if($request->hasFile('itemPic'))
    {
      $bfItemPic = $request->file('itemPic');
      $filename = /*time() . '.' . */ $bfItemPic->getClientOriginalName();
      Image::make($bfItemPic)->resize(250,250)->save( public_path('/itempictures/' .$filename));
      //bufashItems::create($request->all());
      $bfproducts = bufashItems::all();
      $bfproducts->item_picture = $filename;
      $bfproducts->save();
    }
    return redirect('/Items');
  }

Upvotes: 1

Views: 836

Answers (3)

S M Iftakhairul
S M Iftakhairul

Reputation: 1150

bufashItems::all(), this is the eloquent by which you can retrieve data. You have to do:

$bfproducts = new bufashItems();
$bfproducts->item_picture = $filename;
$bfproducts->save();

Upvotes: 0

pseudoanime
pseudoanime

Reputation: 1593

You are trying to save a collection there and save method calls do not exist on collections, that's why it's throwing the error.

If you are trying to create a new record, try the following:

  $bfproducts = new bufashItems();
  $bfproducts->item_picture = $filename;
  $bfproducts->save();

Make sure you have set the fillable field correctly on bhfashItems class.

Upvotes: 0

Alexey Mezenin
Alexey Mezenin

Reputation: 163898

You get this error because you're trying to use save() method on a collection. You should get an object to make it work, for example:

$bfproducts = bufashItems::where('id', 5)->first();
$bfproducts->item_picture = $filename;
$bfproducts->save();

Upvotes: 1

Related Questions