softcomtecnologia / custom-accessor-and-mutator
设置Laravel模型属性(访问器和修改器)而无需创建方法
Requires
- laravel/framework: ^7.0
This package is not auto-updated.
Last update: 2024-09-21 09:20:17 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; } }
或者在您的模型基类中
或者在您的模型基类中
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; } }
在其模型类中,您可以如下设置
在其模型类中,您可以如下设置
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 许可证