paulehenri-l / laravel-dynamic-attributes
动态添加属性到您的Eloquent模型
3.0.0
2020-10-27 21:33 UTC
Requires
- php: ^7.3
- illuminate/database: ^8.0
- illuminate/events: ^8.0
Requires (Dev)
- fzaninotto/faker: ^1.8
- illuminate/pagination: ^8.0
- phpunit/phpunit: ^9.0
- symfony/finder: ^4.1
- symfony/var-dumper: ^4.1
This package is auto-updated.
Last update: 2024-09-28 06:00:45 UTC
README
允许您在运行时动态添加属性到Eloquent模型。
安装
composer require paulhenri-l/laravel-dynamic-attributes
使用
首先,您需要将 HasDynamicAttributesTrait
添加到您的模型中。
class Member extends Illuminate\Database\Eloquent\Model { use PaulhenriL\LaravelDynamicAttributes\HasDynamicAttributes; }
然后,您可以从构造函数或其他将在运行时调用的位置注册动态字段。
一个好的位置是从特性(trait)的初始化方法。
class Member extends Illuminate\Database\Eloquent\Model { use PaulhenriL\LaravelDynamicAttributes\HasDynamicAttributes; public function __construct(array $attributes = []) { parent::__construct($attributes); $this->registerDynamicAttribute( 'my_dynamic_attribute', function ($key) { return "Trying to get {$key}"; }, function ($key, $value) { echo "Setting {$key}"; } ); } }
现在您可以为动态属性设置和获取值
$member = new Member();
$member->my_dynamic_attribute = 'Hello';
$member->my_dynamuc_attribute;
贡献
如果您对这个库的使用有任何疑问,请随时提出问题。
如果您认为文档或代码可以有任何改进,请提交PR,我会很乐意审查!