Как очистить кеш после обновления баз? - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь очистить кеш после некоторых обновлений таблицы.

В функции хранилища контроллера добавляю

Artisan::call('cache:clear');

Но это не очень хороший способ сделать это. Я сделал наблюдателей, чтобы сделать это. Но это тоже повторяется.

Например, у меня есть пользователи, категории, сообщения, таблица посетителей. Если таблицы категорий и сообщений обновляются, кэш должен очищаться. Но я не могу сделать это ясно. Могу ли я написать четкий код для этого? Любая идея будет хорошей. Заранее спасибо.

1 Ответ

1 голос
/ 11 апреля 2019

Вот один пример чистого кода:

Создайте файл в app / Traits / CacheClear.php и поместите этот код:

`

черта CacheClear {

/**
 * Boot function for Laravel model events.
 * https://laravel.com/docs/5.8/eloquent#events
 *
 * @return void
 */
protected static function boot()
{
    parent::boot();

    /**
     * After model is created, or whatever action, clear cache.
     */
    static::updated(function () {
        Artisan::call('cache:clear');
    });
}

} `

Теперь, на всякий случай, запустите composer dump-autoload.

После этого перейдите к своей модели и используйте черту,

use App\Traits\CacheClear;

class User extends Model { use CacheClear; }

Каждый раз, когда вы запускаете событие update для модели User, будет вызываться команда:)

...