Beispiel #1
0
 /**
  * Ritorna il prezzo del prodotto
  *
  * @return string
  */
 public function scopeWhereLike($query, $search)
 {
     $searchWords = $this->toWords($search);
     $searchCallback = function (Product $p) use($searchWords) {
         $score = 0;
         $words = $this->toWords($p->getName());
         foreach ($searchWords as $w) {
             if (in_array($w, $words)) {
                 $score++;
             }
         }
         return $score;
     };
     $products = Product::all()->sortBy($searchCallback);
     $ids = array_slice(array_reverse($products->lists('id')->toArray()), 0, 10);
     return $query->whereIn('id', $ids)->orderByRaw('FIELD(id, ' . implode(',', $ids) . ')');
 }