latevaweb/laravel-custom-properties

Laravel trait 用于向 Eloquent 模型添加动态属性

1.0.3 2024-08-05 09:15 UTC

README

向 Eloquent 模型添加动态自定义属性的 trait

Scrutinizer Code Quality Code Coverage Build Status StyleCI License: MIT Laravel 6.x

一旦 trait 安装在模型上,并且添加了迁移字段,你可以执行以下操作

$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();

安装

你可以通过 composer 安装此包

composer require latevaweb/laravel-custom-properties

向模型添加自定义属性

添加自定义属性到模型的必要步骤

  • 首先,你需要添加 LaTevaWeb\CustomProperties\HasCustomProperties - trait。
  • 需要将字段 $table->json('custom_properties')->nullable(); 添加到你的模型表中

这是一个准备好的模型的示例

use Illuminate\Database\Eloquent\Model;
use LaTevaWeb\CustomProperties\HasCustomProperties;

class NewsItem extends Model
{
    use HasCustomProperties;
}

以及迁移

Schema::table('your_table', function (Blueprint $table) {
    $table->json('custom_properties')->nullable();
});