Данные, хранящиеся в кэше, равны нулю (драйвер кэша: массив) - PullRequest
0 голосов
/ 05 декабря 2018

Я пытался сохранить данные в кешированном виде, но когда я извлек кешированный, он возвращает ноль.

Мой драйвер кеша CACHE_DRIVER=array

, а вот мой контроллер ...

    public function index(Request $request){
        view()->share('page_sub', 'Webhhook');

        $data = Cache::get('repo');
        dd($data);

        return view('webhook.index', compact('data'));
    }



    public function handle(Request $request){

        // $data = $request;

        $admins = User::whereHas('roles', function($q){$q->whereIn('roles.name', ['superadmin']);})->get();

        $data = [
            'id' => $request['repository']['id'],
            'name' => $request['repository']['name'],
            'tags_url' => $request['repository']['tags_url'],
            'archive_url' => $request['repository']['archive_url'],
            'updated_at' => $request['repository']['updated_at'],
        ];

        $now = \Carbon\Carbon::now();

        $repo_data = cache('repo');

        \Log::info($repo_data);

        if ($data['updated_at'] != $repo_data['updated_at']) {
            Cache::put('repo', $data, $now->addMonth(1));
        }

        foreach($admins as $user){
            $user->notify(new  WebhookNotification($repo_data));
        }
    }

когда я dd($data) из этого $data = Cache::get('repo'); результат null

Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 04 января 2019

CACHE_DRIVER=array сохраняет данные в кеше только для функций, используемых в том же запросе, и истекает, как только ответ отправляется в браузер.

Если вы хотите получить доступ к данным кэша в нескольких запросах, вы можете использовать CACHE_DRIVER=fileэто сохранит ваши данные в файлах, к которым можно будет получить доступ позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...