thebachtiarz / laravel-additional-attribute-v1
为Laravel项目添加简单附加属性的v1版
2.0.8
2022-10-26 21:36 UTC
Requires
- php: ^8.0
- laravel/framework: ^9.0
- thebachtiarz/laravel-toolkit-v1: ^2.0
README
为Laravel项目添加简单附加属性的v1版
需求
安装
- composer config (仅在您有访问权限时使用)
composer config repositories.thebachtiarz/laravel-additional-attribute-v1 git git@github.com:thebachtiarz/laravel-additional-attribute-v1.git
- 安装仓库
composer require thebachtiarz/laravel-additional-attribute-v1
- 发布供应商
php artisan vendor:publish --provider="TheBachtiarz\AdditionalAttribute\ServiceProvider"
- 数据库迁移
php artisan migrate
实现
- 将以下类特性服务添加到模型中。
use \TheBachtiarz\AdditionalAttribute\Service\AdditionalAttributes;
- 示例
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { use \TheBachtiarz\AdditionalAttribute\Service\AdditionalAttributes; }
特性
在模型中创建新属性或更新现有属性。
/** * Create or update attribute * * @param string $attrName * @param mixed $attrValue * @return AdditionalAttribute|null */ public function setAttr(string $attrName, $attrValue): ?AdditionalAttribute;
App\Models\User::find(1)->setAttr('attrName', 'attrValue');
通过属性名称在模型中获取属性。
/** * Get attribute by name * * @param string $attrName * @param boolean $map default: false * @return mixed */ public function getAttr(string $attrName, bool $map = false): mixed;
App\Models\User::find(1)->getAttr('attrName', false);
通过属性名称在模型中获取属性值。
/** * Get attribute by name. * Get only value. * * @param string $attrName * @param boolean $withKey default: false * @return mixed */ public function getAttrValue(string $attrName, bool $withKey = false): mixed;
App\Models\User::find(1)->getAttrValue('attrName', false);
获取模型中的所有属性。
/** * Get all attribute belongs to model * * @param boolean $map default: false * @return array|null */ public function getAttrs(bool $map = false): ?array;
App\Models\User::find(1)->getAttrs(false);
通过属性名称搜索值。
/** * Search value by attribute name * * @param string $attrName * @param string $valueToSearch * @param boolean $map * @return array */ public static function searchValueByAttr(string $attrName, string $valueToSearch, bool $map = false): array;
App\Models\User::searchValueByAttr('attributeName', 'valueToSearch', false);