Paket laravel-attributes
adalah alat yang dirancang untuk membantu pengembang Laravel dengan mudah mengelola dan mengimplementasikan atribut khusus dalam proyek mereka. Ini memungkinkan Anda untuk menentukan atribut secara langsung pada model Eloquent, membuatnya lebih mudah untuk menangani properti dinamis atau terhitung tanpa secara langsung mengubah skema database. Dengan paket ini, Anda dapat membuat dan mengonfigurasi kumpulan atribut untuk model, sehingga memudahkan pengorganisasian dan memperluas penanganan data dalam aplikasi Laravel. Ini sangat berguna untuk proyek yang memerlukan model data yang dapat disesuaikan dan fleksibel.
Anda tidak perlu stres pada atribut! Anda dapat membuat atribut untuk model dan tampilan apa pun seperti air minum :)
PHP: ^8.0
Laravel Framework: ^9.0
Atribut | L9 | L10 |
---|---|---|
1.0 | ✅ | ✅ |
composer require milwad/laravel-attributes
Setelah mempublikasikan file konfigurasi.
php artisan vendor:publish --provider= " MilwadLaravelAttributesLaravelAttributesServiceProvider "
Setelah dipublikasikan, Anda memigrasikan file migrasi.
php artisan migrate
Pertama, Anda menggunakan sifat dalam model.
<?php
namespace App Models ;
use Illuminate Database Eloquent Factories HasFactory ;
use Illuminate Database Eloquent Model ;
use Milwad LaravelAttributes Traits Attributable ;
class Product extends Model
{
use HasFactory, Attributable;
}
Setelah itu, Anda memiliki akses ke relasi attributes
dan lain-lain....
Jika Anda ingin melampirkan atribut ke suatu model, Anda dapat menggunakan metode attachAttribute
.
Metode attachAttribute
mengambil title
dan value
.
$ product = Product:: query ()-> create ([
' name ' => ' milwad ' ,
' content ' => ' laravel attributes ' ,
]);
$ product -> attachAttribute ( ' age ' , ' 17 ' );
Jika Anda memiliki beberapa atribut, Anda dapat menggunakan metode attachAttributes
untuk menyimpan atribut suatu model.
$ product = Product:: query ()-> create ([
' name ' => ' milwad ' ,
' content ' => ' text ' ,
]);
$ data = [
[
' title ' => ' milwad ' ,
' value ' => ' developer ' ,
],
[
' title ' => ' milwad2 ' ,
' value ' => ' developer2 ' ,
],
[
' title ' => ' milwad3 ' ,
' value ' => ' developer3 ' ,
],
[
' title ' => ' milwad4 ' ,
' value ' => ' developer4 ' ,
],
[
' title ' => ' milwad5 ' ,
' value ' => ' developer5 ' ,
],
[
' title ' => ' milwad6 ' ,
' value ' => ' developer6 ' ,
],
];
$ product -> attachAttributes ( $ data );
Jika Anda ingin mengambil atribut dari relasi Anda dapat menggunakan attributes
.
$ product = Product:: query ()-> with ( ' attributes ' )-> get ();
$ product -> attributes
Mungkin Anda ingin memeriksa satu model memiliki nilai atribut, Anda dapat menggunakan metode hasAttributeValue
.
if ( $ product -> hasAttributeValue ( ' 17 ' )) {
return ' attribute value ' ;
}
return ' no attribute value ' ;
Mungkin Anda ingin memeriksa satu model memiliki atribut title Anda dapat menggunakan metode hasAttributeTitle
.
if ( $ product -> hasAttributeTitle ( ' milwad ' )) {
return ' attribute title ' ;
}
return ' no attribute title ' ;
Jika Anda ingin menghapus semua atribut dari satu model, Anda dapat menggunakan metode deleteAllAttribute
.
$ product -> deleteAllAttribute ();
Jika Anda ingin menghapus atribut tertentu dari suatu model, Anda dapat menggunakan metode deleteAttribute
.
$ product -> deleteAttribute ( ' title ' , ' value ' );
Jika Anda ingin menghapus atribut tertentu berdasarkan judul, Anda dapat menggunakan metode deleteAttributeByTitle
.
Mungkin Anda memiliki dua atribut dengan judul yang sama, jika Anda menghapus dengan cara ini, dua atribut akan terhapus
$ product -> deleteAttributeByTitle ( ' title ' );
Jika Anda ingin menghapus atribut tertentu berdasarkan nilai, Anda dapat menggunakan metode deleteAttributeByValue
.
Mungkin Anda memiliki dua atribut dengan nilai yang sama, jika Anda menghapus dengan cara ini, dua atribut akan terhapus
$ product -> deleteAttributeByValue ( ' value ' );
Jalankan tes dengan:
vendor/bin/pest
composer test
composer test-coverage
Jika Anda ingin mengubah nama tabel migrasi atau mengubah model default Anda dapat menggunakan konfigurasi laravel-attributes
yang ada di folder config
.
<?php
return [
/*
* Table config
*
* Here it's a config of migrations.
*/
' tables ' => [
/*
* Get table name of migration.
*/
' name ' => ' attributes ' ,
/*
* Use uuid as primary key.
*/
' uuids ' => false , // Also in beta !!!
],
/*
* Model class name for attributes table.
*/
' attributes_model ' => Milwad LaravelAttributes Attribute::class,
];
Proyek ini ada berkat semua orang yang berkontribusi. BERKONTRIBUSI
Jika Anda menemukan bug terkait keamanan, silakan kirim email ke [email protected] alih-alih menggunakan pelacak masalah.
Jika paket ini bermanfaat bagi anda, anda dapat membelikan kopi untuk saya :) ❤️
0xf208a562c5a93DEf8450b656c3dbc1d0a53BDE58