Reputation: 51
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
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
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
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