mirror of
https://github.com/archtechx/virtualcolumn.git
synced 2025-12-12 08:04:04 +00:00
Eloquent Virtual Column package.
* Add encrypted casts test (wip) * Handle and test 'encrypted' casts * Add APP_KEY to phpunit.xml * Update attribute casting in VirtualColumn * Test casting of all default 'encrypted' castables * Fix code style (php-cs-fixer) * Handle custom castables in VirtualColumn * Add custom encrypted castable * Test custom encrypted castable, refactor test * Move EncryptedCast class to VirtualColumnTest * Correct expected/actual value order in assertions * Break code style (testing) * Fix code style (php-cs-fixer) * Check Laravel CI version (testing) * dd() Laravel version * Delete dd() * Delete get() and set() types * Use non-lowercase custom cast class strings * Check hasCast manually * Correct encrypted castable logic * Update src/VirtualColumn.php * Use `$dataEncoded` bool instead of `$dataEncodingStatus` string * Don't accept unused `$e` * Refactor `encodeAttributes()` * Use `$model->getCustomColumns()` instead of `static::getCustomColumns()` * Use `$model` instead of `static` where possible * Correct test * Revert `static` -> `$model` changes * Correct typo * Refactor `$afterListeneres` * Fix code style (php-cs-fixer) * Make static things non-static in VirtualColumn * Change method to non-static in test * Add base class that uses VirtualColumn in tests * Add encrypted castables docblock * Fix merge * Fix ParentModel change * make $this and $model use clear and consistent --------- Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com> Co-authored-by: Samuel Štancl <samuel@archte.ch> |
||
|---|---|---|
| .github/workflows | ||
| src | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| .php-cs-fixer.php | ||
| check | ||
| composer.json | ||
| LICENSE | ||
| phpunit.xml | ||
| phpunit.xml.bak | ||
| README.md | ||
Eloquent Virtual Column
Installation
Supports Laravel 9 and 10.
composer require stancl/virtualcolumn
Usage
Use the VirtualColumn trait on your model:
use Illuminate\Database\Eloquent\Model;
use Stancl\VirtualColumn\VirtualColumn;
class MyModel extends Model
{
use VirtualColumn;
public $guarded = [];
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(['foo' => 'bar']);
$myModel->update(['foo' => 'baz']);