Le package laravel-attributes
est un outil conçu pour aider les développeurs Laravel à gérer et à implémenter facilement des attributs personnalisés dans leurs projets. Il vous permet de définir des attributs directement sur les modèles Eloquent, simplifiant ainsi la gestion des propriétés dynamiques ou calculées sans modifier directement le schéma de la base de données. Avec ce package, vous pouvez créer et configurer des ensembles d'attributs pour les modèles, facilitant ainsi l'organisation et l'extension de la gestion des données dans les applications Laravel. C'est particulièrement utile pour les projets qui nécessitent des modèles de données personnalisables et flexibles.
Vous n'avez aucun stress pour les attributs ! Vous pouvez créer des attributs pour n'importe quel modèle et afficher comme boire de l'eau :)
PHP: ^8.0
Laravel Framework: ^9.0
Attributs | L9 | L10 |
---|---|---|
1.0 | ✅ | ✅ |
composer require milwad/laravel-attributes
Après avoir publié les fichiers de configuration.
php artisan vendor:publish --provider= " MilwadLaravelAttributesLaravelAttributesServiceProvider "
Après la publication, vous migrez le fichier de migration.
php artisan migrate
Tout d’abord, vous utilisez le trait dans le modèle.
<?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;
}
Après, vous avez accès aux attributes
relation et etc... .
Si vous souhaitez attacher un attribut à un modèle, vous pouvez utiliser la méthode attachAttribute
.
La méthode attachAttribute
prend un title
et value
.
$ product = Product:: query ()-> create ([
' name ' => ' milwad ' ,
' content ' => ' laravel attributes ' ,
]);
$ product -> attachAttribute ( ' age ' , ' 17 ' );
Si vous disposez de plusieurs attributs, vous pouvez utiliser la méthode attachAttributes
pour enregistrer les attributs d'un modèle.
$ 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 );
Si vous souhaitez récupérer les attributs de la relation, vous pouvez utiliser attributes
.
$ product = Product:: query ()-> with ( ' attributes ' )-> get ();
$ product -> attributes
Peut-être souhaitez-vous vérifier qu'un modèle a une valeur d'attribut, vous pouvez utiliser la méthode hasAttributeValue
.
if ( $ product -> hasAttributeValue ( ' 17 ' )) {
return ' attribute value ' ;
}
return ' no attribute value ' ;
Peut-être souhaitez-vous vérifier qu'un modèle a un titre d'attribut, vous pouvez utiliser la méthode hasAttributeTitle
.
if ( $ product -> hasAttributeTitle ( ' milwad ' )) {
return ' attribute title ' ;
}
return ' no attribute title ' ;
Si vous souhaitez supprimer tous les attributs d'un modèle, vous pouvez utiliser la méthode deleteAllAttribute
.
$ product -> deleteAllAttribute ();
Si vous souhaitez supprimer un attribut spécifique d'un modèle, vous pouvez utiliser la méthode deleteAttribute
.
$ product -> deleteAttribute ( ' title ' , ' value ' );
Si vous souhaitez supprimer un attribut spécifique par titre, vous pouvez utiliser la méthode deleteAttributeByTitle
.
Peut-être que vous avez deux attributs avec le même titre, si vous supprimez avec cette méthode, deux attributs seront supprimés
$ product -> deleteAttributeByTitle ( ' title ' );
Si vous souhaitez supprimer un attribut spécifique par valeur, vous pouvez utiliser la méthode deleteAttributeByValue
.
Peut-être que vous avez deux attributs avec la même valeur, si vous supprimez avec cette méthode, deux attributs seront supprimés
$ product -> deleteAttributeByValue ( ' value ' );
Exécutez les tests avec :
vendor/bin/pest
composer test
composer test-coverage
Si vous souhaitez modifier le nom de la table de migration ou modifier le modèle par défaut, vous pouvez utiliser la configuration laravel-attributes
qui existe dans le dossier 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,
];
Ce projet existe grâce à toutes les personnes qui y contribuent. CONTRIBUER
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un e-mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Si ce forfait vous est utile, vous pouvez m'acheter un café :) ❤️
0xf208a562c5a93DEf8450b656c3dbc1d0a53BDE58