Wstęp do następnej lekcji o query scopes. Robimy proste komendy do zmiany nowo dodanej kolumny hidden. Do dzieła.

Ok, zróbmy komendę make-hidden:

Artisan::command('make-hidden {id}', function (int $id) {

    $note = Note::findOrFail($id);
    $note->hidden = true;
    $note->save(); 

    $this->comment("note hidden now");
  
});

Warto pamiętać, że $table->boolean to w bazie danych tak naprawdę tinyint(1). Eloquent sobie radzi z wartościami true/false, ale napiszmy komendę z fasadą db:

Artisan::command('make-hidden-db {id}', function (int $id) {

    $affected = DB::table("notes")
    ->where("id", $id)
    ->update(["hidden" => 1]);

    $this->comment("updated - hidden now");
    $this->comment($affected);
   
    
});

Zakładam, że z palca update query też napisać potrafimy. Ok, teraz w drugą stronę:

Artisan::command('make-not-hidden {id}', function (int $id) {

    $note = Note::findOrFail($id);
    $note->hidden = false;
    $note->save(); 

    $this->comment("note not hidden anymore");
   
    
});

Wersja z fasadą DB:

Artisan::command('make-not-hidden-db {id}', function (int $id) {

    $affected = DB::table("notes")
    ->where("id", $id)
    ->update(["hidden" => 0]);

    $this->comment("updated - not hidden anymore");
    $this->comment($affected);
   
    
});

Zróbmy sobie jeszcze toggle:

Artisan::command('toggle-hidden {id}', function (int $id) {

    $note = Note::findOrFail($id);
    $note->hidden = !$note->hidden;
    $note->save();

    $this->comment("hidden toggled");
   
    
});

Ok, w następnych lekcjach poznamy query scopes.