igorwanbarros / custom-accessor-and-mutator
设置Laravel模型属性(访问器和修改器)而不创建方法
Requires
- laravel/framework: 5.1.*
This package is auto-updated.
Last update: 2022-06-14 15:24:48 UTC
README
#自定义访问器和修改器
自定义访问器和修改器
CustomAccessorsAndMutators 是一个用于优化Laravel中访问器和修改器创建的包。重点是通过对数组进行设置,将属性作为键,方法作为值来设置访问器和修改器。
CustomAccessorsAndMutators 是一个用于优化Laravel中访问器和修改器创建的包。重点是通过对数组进行设置,将属性作为键,方法作为值来设置访问器和修改器。
安装
安装
Composer
如果您已经使用Composer(强烈推荐),请在您的 composer.json 文件中的 "require" 策略下添加依赖关系
如果您已经使用Composer(强烈推荐),请在您的 composer.json 文件中的 "require" 策略下添加依赖关系
require : { "laravel/framework": "5.1.*", "igorwanbarros/custom-accessor-and-mutator": "v1.*" }
用法
用法
该包使用 CustomAccessorsAndMutators 特性来设置属性,只需将其添加到它们的类中,如下所示
该包使用 CustomAccessorsAndMutators 特性来设置属性,只需将其添加到它们的类中,如下所示
use Illuminate\Database\Eloquent\Model; use Igorwanbarros\CustomAccessorAndMutator\CustomAccessorsAndMutators; class Order extends Model { use CustomAccessorsAndMutators; protected $table = 'order'; protected $customAccessors = [ //attribute name you model => your default method for treating this type of data 'you_attribute_name' => '_yourMethodGet', 'you_other_attribute_name' => '_yourMethodGet', ]; protected $customMutators = [ 'you_atribute_name' => '_yourMethodGet', 'you_other_atribute_name' => '_yourMethodGet', ]; protected function _youtMethodGet($value) { //you logic here return $value; } protected function _youtMethodSet($value) { //you logic here return $value; } }
或者在您的Model基类中
或者在您的Model基类中
class ModelBase extends Model { use CustomAccessorsAndMutators }
在其它模型中仅添加字段及其相应的方法
在其它模型中仅添加字段及其相应的方法
class Order extends Model { protected $table = 'order'; protected $customAccessors = [ 'you_attribute_name' => '_yourMethodGet', ]; protected $customMutators = [ 'you_attribute_name' => '_yourMethodGet', ]; protected function _youtMethodGet($value) { //you logic here return $value; } protected function _youtMethodSet($value) { //you logic here return $value; } }
通过类添加
通过类添加
您还可以实现 FormatAccessorsAndMutator 类来定义您的格式化逻辑(例如,对于某些类型的数据),如下所示
您还可以实现 FormatAccessorsAndMutator 类来定义您的格式化逻辑(例如,对于某些类型的数据),如下所示
namespace App\FormatAccessorsAndMutators; use Igorwanbarros\CustomAccessorAndMutator\FormatAccessorAndMutator; class MoneyFormatAccessorsAndMutators implements FormatAccessorAndMutator { public static function get($value) { //you logic here return $value; } public static function set($value) { //you logic here return $value; } }
在其Model类中可以设置如下
在其Model类中可以设置如下
use Illuminate\Database\Eloquent\Model; use Igorwanbarros\CustomAccessorAndMutator\CustomAccessorsAndMutators; use App\FormatAccessorsAndMutators\MoneyFormatAccessorsAndMutators; class Order extends Model { use CustomAccessorsAndMutators; protected $table = 'order'; protected $customAccessors = [ 'you_attribute_name' => MoneyFormatAccessorsAndMutators::class, 'you_other_attribute_name' => MoneyFormatAccessorsAndMutators::class, ]; protected $customMutators = [ 'you_atribute_name' => MoneyFormatAccessorsAndMutators::class, 'you_other_atribute_name' => MoneyFormatAccessorsAndMutators::class, ]; }
许可证
MIT许可证