Как я могу кэшировать пользовательский запрос в Redis. Я пытаюсь следующее
public function __construct()
{
$this->orders_sql = Cache::remember('orders', 10, function () {
return $query = DB::connection('db1')->table('orders as o')
->leftJoin('addresses as pa', 'o.id', '=', 'pa.order_id')
->leftJoin('users as u', 'o.user_id', '=', 'u.id')
->leftJoin('clients', 'clients.user_id', '=', 'u.id')
->select(
'o.id as id', 'o.type as type', 'o.extra_info as extra_info', 'o.status as order_status', 'o.created_at as created_at', 'o.type as order_type', 'o.inspection_date as inspection_date', 'o.assignee as assignee', 'o.user_id as user_id', 'o.inspector_name as inspector_name',
'pa.address as address', 'pa.city as city', 'pa.state as state',
'clients.first_name as first_name', 'clients.middle_name as middle_name', 'clients.last_name as last_name'
)
->whereIn('o.status', OrderHelper::$ALLOWED_STATUS)
->where('o.type', '<>', OrderHelper::$CONSTRUCTION_EXISTING)
->where('o.deleted_at', null);
});
}
public function orders($sort_by, $sort_order, $limit, $filters)
{
if ($filters) {
$query = $this->applyFilters($filters);
}
$orders = $query->orderBy($sort_by ?? OrderHelper::$DEFAULT_SORT_COLUMN, $sort_order ?? OrderHelper::$DEFAULT_SORT_ORDER);
if ($limit === 'all') {
$orders = $orders->get();
} else {
$orders = $orders->get();
// $orders = $orders->paginate($limit ?? CommonHelper::$DEFAULT_PAGINATION_LIMIT);
}
//adding more information with orders such as Bank and address info
foreach ($orders as $order) {
$order->created_at = OrderHelper::getFormattedDate($order->id);
$order->draw = OrderHelper::draw($order->id);
$order->inspection_date = OrderHelper::getFormattedInspectionDate($order->inspection_date);
$order->client_name = $order->first_name . ' ' . $order->middle_name . ' ' . $order->last_name;
$order->type = OrderHelper::getFormattedOrderType($order);
if (empty($order->assignee)) {
$order->inspector_name = '-';
}
}
return $orders ? $orders : false;
}
И я получаю ошибку как
"message": "Serialization of 'Closure' is not allowed",
"exception": "Exception",
"file": "/var/www/api.local/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php",
"line": 295,