App\Http\Controllers\ProductsController::getRandCategoryId PHP Method

getRandCategoryId() public static method

To get a existing category id from products.
public static getRandCategoryId ( ) : [integer]
return [integer]
    public static function getRandCategoryId()
    {
        $product = Product::select(['category_id'])->free()->orderByRaw('RAND()')->take(1)->first();
        return $product ? $product->id : 1;
    }

Usage Example

Example #1
0
 /**
  * manage the home section suggestions
  * @param  [string] $type, which is the reference point to build the suggest
  * @return [json] $suggest, that contain the products list to be displayed on home page
  */
 public static function suggest($type, $limit = 4)
 {
     $data = [];
     switch ($type) {
         case 'purchased':
             $data['preferences_key'] = 'product_purchased';
             $data['limit'] = $limit;
             break;
         case 'categories':
             $data['preferences_key'] = 'product_categories';
             $data['limit'] = $limit;
             $usr_prefe = UserController::getPreferences('', $data['preferences_key']);
             //look up for user preferences
             if (count($usr_prefe['tags']) == 0) {
                 $data['category'] = ProductsController::getRandCategoryId();
                 //if there is not info, we get a rand category id
             } else {
                 $data['category'] = $usr_prefe['tags'][mt_rand(0, count($usr_prefe['tags']) - 1)];
                 //if so, we get a rand user preferences category
             }
             break;
         case 'viewed':
             $data['preferences_key'] = 'product_viewed';
             $data['limit'] = $limit;
             break;
         case 'carousel':
             return ProductsController::getTopRated(0, $limit, false);
             break;
         default:
             $data['limit'] = $limit;
             $data['preferences_key'] = '';
             break;
     }
     $suggest = ProductsController::getSuggestions($data);
     //suggestion array
     return $suggest;
 }