/**
  * @param Request $request
  * @param $productReview
  */
 private function saveProductReview(Request $request, $productReview)
 {
     $productReview->fill($request->input());
     if ($request->hasFile('image')) {
         $fileName = str_random(32) . '.' . $request->file('image')->getClientOriginalExtension();
         $request->file('image')->move(public_path() . '/img/uploads/', $fileName);
         $productReview->image = 'img/uploads/' . $fileName;
     }
     $reviewTags = $request->input('review_tags');
     $reviewTagsIds = [];
     foreach ($reviewTags as $reviewTag) {
         $reviewTagDb = ReviewTag::where('text', $reviewTag)->first();
         if ($reviewTagDb == null) {
             $reviewTagDb = ReviewTag::create(['text' => $reviewTag]);
         }
         array_push($reviewTagsIds, $reviewTagDb->id);
     }
     $productReview->save();
     $productReview->reviewTags()->sync($reviewTagsIds);
 }
 /**
  * @param Request $request
  * @param $review
  */
 private function saveReview(Request $request, $review)
 {
     $review->fill($request->input());
     $reviewTags = $request->input('review_tags');
     $reviewTagsIds = [];
     if ($reviewTags != null) {
         foreach ($reviewTags as $reviewTag) {
             $reviewTagDb = ReviewTag::where('text', $reviewTag)->first();
             if ($reviewTagDb == null) {
                 $reviewTagDb = ReviewTag::create(['text' => $reviewTag]);
             }
             array_push($reviewTagsIds, $reviewTagDb->id);
         }
     }
     $review->save();
     $review->reviewTags()->sync($reviewTagsIds);
 }