thebachtiarz/laravel-additional-attribute-v1

为Laravel项目添加简单附加属性的v1版

2.0.8 2022-10-26 21:36 UTC

This package is auto-updated.

Last update: 2024-09-27 02:09:14 UTC


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