️ Paket ini tidak akan digunakan lagi dan digantikan dengan paket ini: https://github.com/open-southeners/laravel-model-status
Status pengetikan kode Laravel untuk model Eloquent.
Anda dapat menginstal paket melalui composer:
composer require skore-labs/laravel-status
Kemudian Anda perlu mempublikasikan konfigurasi paket dan migrasi, sehingga Anda dapat mengubah dan/atau memigrasikan tabel status baru:
php artisan vendor:publish --provider="SkoreLabsLaravelStatusServiceProvider"
Tambahkan status ke model Anda dengan menambahkan SkoreLabsLaravelStatusTraitsHasStatuses
dan antarmuka SkoreLabsLaravelStatusContractsStatusable
sehingga dapat meneruskan beberapa peristiwa yang telah ditentukan (lihat di atas), berikut contohnya:
<?php
namespace App ;
use Illuminate Database Eloquent Model ;
use SkoreLabs LaravelStatus Contracts Statusable ;
use SkoreLabs LaravelStatus Traits HasStatuses ;
class Post extends Model implements Statusable
{
use HasStatuses;
// Your model logic here...
}
Sesuaikan enum untuk pemeriksaan status (menggunakan paket spatie/enum , periksa dokumentasinya):
/**
* Get the statuses enum used for some utilities.
*
* @return string|SpatieEnumEnum
*/
public static function statusesClass ()
{
return App Statuses PostStatuses::class;
}
Catatan: Ini tidak diperlukan, hanya jika Anda TIDAK menyimpan semua kelas enum status model Anda di AppEnums
sebagai ModelStatus
.
Catatan: Semua metode tidak peka huruf besar-kecil pada nama status.
Periksa apakah model memiliki status.
Catatan: Ini mengembalikan nama status yang cocok saat ini.
// Post has status Published
$ post -> hasStatus ( ' published ' );
// Post has status Published or Was Published
$ post -> hasStatus ([ ' published ' , ' was published ' ]);
Tetapkan status atau mutasi status hanya jika status sebelumnya cocok dengan kunci.
// Set post status to Was Published
$ post -> setStatus ( ' was published ' );
// Change if post has status Published to Was Published.
$ post -> setStatus ([ ' published ' => ' was published ' ]);
Anda juga dapat menggunakan atribut untuk menetapkan status:
$ post -> status = ' was published ' ;
// Better use status method for this
if ( $ post -> hasStatus ( ' published ' )) {
$ post -> status = ' was published ' ;
}
// When save it check and attach the status
$ post -> save ();
Anda juga dapat melakukan hal yang sama dengan metode setStatusWhen
seperti contoh di atas dengan setStatus
.
// Change if post has status Published to Was Published.
$ post -> setStatusWhen ( ' published ' , ' was published ' );
Jika parameter disediakan, parameter tersebut bertindak sebagai alias hasStatus.
Jika array asosiatif disediakan, array tersebut bertindak sebagai alias setStatus.
Jika tidak, itu hanya akan mengambil hubungan sebagai $post->status
atau $post->status()->first()
Anda juga dapat memfilter berdasarkan cakupan:
Post:: status ( ' published ' );
Post:: where ( ' user_id ' , Auth:: id ())-> status ( ' published ' );
Dapatkan semua status model yang mungkin.
Post:: statuses ();
// You can use Status model as well
Status:: getFrom (Post::class);
// Also specify value to return like '->value('id')'
Status:: getFrom (Post::class, ' id ' );
// Or return the object with columns like '->first(['id', 'name'])'
Status:: getFrom (Post::class, [ ' id ' , ' name ' ]);
Dapatkan status default model.
// Default status for post is Published, so it returns Published
Post:: getDefaultStatus ();
// You can use Status model query scope as well
Status:: query ()-> defaultFrom (Post::class)-> first ();
Ini dan semua paket Laravel kami mengikuti semaksimal mungkin dukungan LTS Laravel.
Baca selengkapnya: https://laravel.com/docs/master/releases#support-policy