Сводка
Пользовательская директива блейда не использует текущее значение в базе данных без предварительной очистки кеша представления.Так как это значение может быть изменено пользователем и влияет на представление, мне нужна директива, чтобы всегда извлекать текущее значение из БД, а не использовать кэшированное (это работает для таких директив, как @auth, так почему бы не мой собственный?).
Справочная информация
Я написал пользовательскую директиву, используя этот учебник , в сущности одно и то же показывает различное содержимое в зависимости от значения, хранящегося в базе данных.Проблема, с которой я сталкиваюсь, заключается в том, что если переменная изменяется, например, с false на true, директива остается со старым значением, она не обновляет его при изменении в БД.Он работает, когда я очищаю кеш представления, но я хочу, чтобы он всегда использовал текущее значение, хранящееся в базе данных.
Код
\Blade::directive('signup_done', function () {
$condition = false;
if (\Auth::check()) {
if (\Auth::user()->signup_done) $condition = true;
}
return "<?php if ($condition) { ?>";
});
Ожидаемые и фактические результаты
signup_done
по умолчанию false
для каждого пользователя, если оно меняется на true
Я хочу, чтобы директива выводила true, но она застряла в false, пока я не очистил кэш представления.