wearepixel/laravel-model-objects

一个用于轻松将 Laravel 模型序列化以便在数据库中存储并进行断开连接的模型访问的包。

1.0.0 2024-05-13 07:21 UTC

This package is auto-updated.

Last update: 2024-09-13 03:10:20 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

一个用于轻松检索 Laravel 模型对象的包,以便轻松存储

主要功能

  • 从模型中检索对象
  • 通过使用 $hiddenProperties 数组属性隐藏对象中的字段
  • 通过设置配置值隐藏对象中的关系

安装

您可以通过 composer 安装此包

composer require wearepixel/laravel-model-objects

用法

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use WeArePixel\LaravelModelObjects\HasModelObject;

class User extends Model
{
    use HasModelObject;

    protected $hiddenProperties = [
        'user_id',
    ];
}

// ...
$user = User::find(1);
$userObject = $user->modelObject;

配置

发布配置

配置文件看起来像这样

return [
    /**
     * Hide the primary key from the model object
     */
    'hide_primary_key' => env('LARAVEL_MODEL_OBJECTS_HIDE_PRIMARY_KEY', true),

    /**
     * Hide timestamps from the model object
     */
    'hide_timestamps' => env('LARAVEL_MODEL_OBJECTS_HIDE_TIMESTAMPS', true),
];

如果您需要修改配置,请随时发布配置文件。

php artisan vendor:publish --provider="WeArePixel\LaravelModelObjects\LaravelModelObjectsServiceProvider"

隐藏模型属性

此包将自动隐藏任何添加到 $hiddenProperties 数组属性中的额外字段。

protected $hiddenProperties = [
    'user_id',
];

这对于不需要在对象中存储所有字段或想隐藏敏感信息的场景非常有用。

测试

composer test

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。