I am using laravel 5.4 I am calling one method from my review model to product model while calling that method it throws error
BadMethodCallException in Builder.php line 2445: Call to undefined method Illuminate\Database\Query\Builder::recalculateRating()
My Review model is
public function storeReviewForProduct($productID, $review, $rating)
{
$product = Product::find($productID);
$this->user_id = Auth::user()->id;
$this->review = $review;
$this->rating = $rating;
$product->reviews()->save($this);
// recalculate ratings for the specified product
$product->recalculateRating($rating);
}
My product model is:
public function recalculateRating($rating)
{
$reviews = $this->reviews()->notSpam()->approved();
$avgRating = $reviews->avg('rating');
$this->rating_cache = round($avgRating,1);
$this->rating_count = $reviews->count();
$this->save();
}
Did i call the method correctly or not please help me out