protected function generateCacheKey($builder, array $columns): string
    {
        $query = $builder instanceof Builder ? $builder->getQuery() : $builder;
        $vars = [
            'aggregate' => $query->aggregate,
            'columns' => $query->columns,
            'distinct' => $query->distinct,
            'from' => $query->from,
            'joins' => $query->joins,
            'wheres' => $query->wheres,
            'groups' => $query->groups,
            'havings' => $query->havings,
            'orders' => $query->orders,
            'limit' => $query->limit,
            'offset' => $query->offset,
            'unions' => $query->unions,
            'unionLimit' => $query->unionLimit,
            'unionOffset' => $query->unionOffset,
            'unionOrders' => $query->unionOrders,
            'lock' => $query->lock,
        ];

        return md5(json_encode([
            $vars,
            $columns,
            static::class,
            $this->getCacheDriver(),
            $this->getCacheLifetime(),
            $builder instanceof Builder ? $builder->getEagerLoads() : null,
            $builder->getBindings(),
            $builder->toSql(),
        ]));
    }
protected function generateCacheKey($builder, array $columns): string
    {
        $query = $builder instanceof Builder ? $builder->getQuery() : $builder;
        $vars = [
            'aggregate' => $query->aggregate,
            'columns' => $query->columns,
            'distinct' => $query->distinct,
            'from' => $query->from,
            'joins' => $query->joins,
            'wheres' => $query->wheres,
            'groups' => $query->groups,
            'havings' => $query->havings,
            'orders' => $query->orders,
            'limit' => $query->limit,
            'offset' => $query->offset,
            'unions' => $query->unions,
            'unionLimit' => $query->unionLimit,
            'unionOffset' => $query->unionOffset,
            'unionOrders' => $query->unionOrders,
            'lock' => $query->lock,
        ];

        return md5(json_encode([
            $vars,
            $columns,
            static::class,
            $this->getCacheDriver(),
            $this->getCacheLifetime(),
            $builder instanceof Builder ? $builder->getEagerLoads() : null,
            $builder->getBindings(),
            $builder->toSql(),
        ]));
    }
protected function generateCacheKey ( $ builder , array $ columns ) : string { $ query = $ builder instanceof Builder ? $ builder -> getQuery ( ) : $ builder ; $ vars = [ 'aggregate' => $ query -> aggregate , 'columns' => $ query -> columns , 'distinct' => $ query -> distinct , 'from' => $ query -> from , 'joins' => $ query -> joins , 'wheres' => $ query -> wheres , 'groups' => $ query -> groups , 'havings' => $ query -> havings , 'orders' => $ query -> orders , 'limit' => $ query -> limit , 'offset' => $ query -> offset , 'unions' => $ query -> unions , 'unionLimit' => $ query -> unionLimit , 'unionOffset' => $ query -> unionOffset , 'unionOrders' => $ query -> unionOrders , 'lock' => $ query -> lock , ] ; return md5 ( json_encode ( [ $ vars , $ columns , static :: class , $ this -> getCacheDriver ( ) , $ this -> getCacheLifetime ( ) , $ builder instanceof Builder ? $ builder -> getEagerLoads ( ) : null , $ builder -> getBindings ( ) , $ builder -> toSql ( ) , ] ) ) ; }
Generate unique cache key.

@param \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder $builder
@param array                                                                    $columns

@return string
Generate unique cache key .