Темный режим через PHP и оператор Laravel if - PullRequest
0 голосов
/ 17 октября 2018

Интересно, возможно ли это?Я пытаюсь установить в контроллере PHP средство проверки темного режима и отправить его обратно в тело в виде оператора if, проверяющего, является ли логическое значение истинным или нет.

Вот моя текущая работа:

URL отправителя

<a href="/nightmode"> Switch modes</a>

Контроллер

public function switchModes()
    {
        //doesnt work since $isDark's value is not initialized
        $isDark = !$isDark;
        dd($isDark);
        return $isDark;
    }

Целевой результат:

<body background="@if($isDark) #505050 @else #ffffff @endif">

1 Ответ

0 голосов
/ 17 октября 2018

Краткий ответ - да.Но вы должны действительно попытаться прояснить свой вопрос.

Если вы хотите, чтобы пользователь нажимал кнопку или ссылку для переключения между светлым / темным режимами, вы должны использовать Session.

В вашем текущем методе контроллера вы отметили, что $ isDark не инициализирован.Вы нигде не предоставили способ инициализации этого значения, и ваш контроллер не может настроить то, что вы делаете.

Используя переменные сеанса, вы можете иметь значения, которые сохраняются между страницами.Подробнее о sessions здесь: Введение в PHP-сессию

Session в Laravel работает немного по-другому, но идея та же.Вы хотите получить переменную сеанса в методе контроллера и проверить значение, чтобы определить, находится ли пользователь в светлом или темном режиме, тогда вы бы переключили его режим, установив переменную сеанса в другое значение.По вашему мнению, вы можете проверить связанную переменную сеанса, чтобы определить режим.

В вашем контроллере вы можете сделать что-то вроде:

  public function switchModes()
  {
      if (session()->has('isDark')) {
          session()->put('isDark', !session('isDark'));
      }
      else {
          //provide an initial value of isDark
          session()->put('isDark', true);
      }
      return redirect()->route('your-route-name');
  }

И по вашему мнению, вы можете проверитьпеременная сеанса такая:

<body class="@if (session('isDark')) dark-mode @else light-mode"> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...