コード例 #1
0
ファイル: HomeController.php プロジェクト: stcoder/uf-vova
 /**
  * Возвращает объект отзыва или пустой результат.
  *
  * Запоминает в сессии 10 последних отзывов.
  * Отзыв выбирается из базы рандомно исключая отзывы из сессии.
  *
  * @return Review|null
  */
 protected function __getReview()
 {
     $review_ids = Request::session()->get('review_ids');
     $where = Review::withTrashed()->with('profile');
     if (!is_null($review_ids)) {
         $where->whereNotIn('id', $review_ids);
     }
     $where->orderByRaw('RAND()');
     $where->limit(1);
     $reviews = $where->get();
     $review = null;
     if ($reviews) {
         $review = $reviews[0];
     }
     if (is_null($review_ids)) {
         $review_ids = [];
     }
     if (sizeof($review_ids) >= 30) {
         $review_ids = array_slice($review_ids, 1);
     }
     if (sizeof($review_ids) < 30) {
         array_push($review_ids, $review->id);
     }
     Request::session()->set('review_ids', $review_ids);
     return $review;
 }