laravel-custom-properties maintained by latevaweb
Description
Laravel trait to make add dynamic properties to Eloquent models
Author
Last update
2024/08/05 11:15
(dev-develop)
License
Downloads
1 322
Tags
Laravel Custom Properties
Trait to add dynamic custom properties to Eloquent models
Once the trait is installed on the model and migration field is added you can do these things:
$customer = new Customer; // An Eloquent model
$customer
->setCustomProperty('foo', 'bar')
->setCustomProperty('foo2', 'bar2')
->save();
$customer->hasCustomProperty('foo'); // Returns 'true'
$customer->getCustomProperty('foo'); // returns 'bar'
$customer->forgetCustomProperty('foo'); // removes field 'foo' from model array
// Don't forget to persist it!
$customer->save();
Installation
You can install the package via composer:
composer require latevaweb/laravel-custom-properties
Adding custom properties to a Model
The required steps to add custom properties to a model are:
- First, you need to add the
LaTevaWeb\CustomProperties\HasCustomProperties-trait. - It is required to add to your model table the field
$table->json('custom_properties')->nullable();
Here's an example of a prepared model:
use Illuminate\Database\Eloquent\Model;
use LaTevaWeb\CustomProperties\HasCustomProperties;
class NewsItem extends Model
{
use HasCustomProperties;
}
And the migration:
Schema::table('your_table', function (Blueprint $table) {
$table->json('custom_properties')->nullable();
});


