Как активировать и неактивировать логическое значение в Laravel

Я хочу знать, как сделать логические данные истинными или ложными в базе данных всякий раз, когда нажимается моя кнопка. Я уже могу выполнить истину при нажатии кнопки, я хочу знать, как сделать ее ложной. Надеюсь получить ответ спасибо! Кстати, это мой первый раз, когда я задаю вопрос здесь, и исходный код взят из Код со Штейном от YT, большое спасибо. Вот некоторые из кодов, которые я использовал.

My code for my update form

<form method="POST" action="/{{ $todo->id }}">
 @csrf
            @method('PATCH')
            <button class="py-2 px-2 bg-green-500 text-white rounded-xl" id="show">
            <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
            <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
            </svg>
            </button>
            </form>

My code for route

Route::patch('/{todo}', [TodoController::class, 'update']);

My code for my controller

  public function update(Todo $todo) {
    $todo->update(['isDone' => true]);
    return redirect('/')->with('msg1', 'Marked as done!');;

}    

UI change when I the button clicked

        <div 
        @class([
            'py-4 flex items-center border-b border-gray-300 px-3',
            $todo->isDone ? 'bg-green-200' : ''
            
        ])
        >

Скриншот пользовательского интерфейса

Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
1
0
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы хотите сделать его ложным (или как переключать), можете попробовать поменять местами значение с !

что-то вроде этого

// "$todo->isDone" value is false
$todo = Todo::create(['isDone' => false]);

// Since ! means "not" in logical operator, so !false = true
$todo->update(['isDone' => !$todo->isDone]);

Я тестировал здесь

https://web.tinkerwell.app/#/snippets/dc8a7b9f-59a6-4c07-84ca-1bb2fc8c1da4

просто замените этим контроллером

public function update(Todo $todo) {
 $todo->update(['isDone' => !$todo->isDone]);
 return redirect('/')->with('msg1', 'Marked as done!');;
} 

Ваш ответ можно улучшить, добавив дополнительную информацию о том, что делает код и как он помогает OP.

Tyler2P 23.04.2022 12:54

Другие вопросы по теме