zanysoft / virtualcolumn
Laravel - Eloquent virtual column.
1.0.1
2025-02-18 15:29 UTC
Requires
- illuminate/database: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2025-02-18 15:59:45 UTC
README
Save additional data to virtual column
Installation
composer require zanysoft/virtualcolumn
Usage
Use the VirtualColumn
trait on your model:
use Illuminate\Database\Eloquent\Model; use ZanySoft\VirtualColumn\VirtualColumn; class MyModel extends Model { use VirtualColumn; public $guarded = []; }
For custom virtual column where you want to save additional data. Default column name is data
use Illuminate\Database\Eloquent\Model; use ZanySoft\VirtualColumn\VirtualColumn; class MyModel extends Model { use VirtualColumn; public static function getDataColumn(): string { return 'data'; //name of the column that stores additional data. } }
For saving data to existing database columns, by default all columns from the table are selected, except virtual column.
use Illuminate\Database\Eloquent\Model; use ZanySoft\VirtualColumn\VirtualColumn; class MyModel extends Model { use VirtualColumn; public static function getCustomColumns(): array { return [ 'id', 'custom1', 'custom2', ]; } }
Create a migration:
public function up() { Schema::create('my_models', function (Blueprint $table) { $table->increments('id'); $table->string('custom1')->nullable(); $table->string('custom2')->nullable(); $table->json('data'); }); }
And store any data on your model:
$myModel = MyModel::create(['custom1' => 'custom 1', 'custom2' => 'custom 2', 'foo' => 'bar']); $myModel->update(['custom1' => 'custom 1', 'custom2' => 'custom 2', 'foo' => 'bar']);