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.