a2workspace/laravel-model-builder
最新稳定版本:v1.1.1
Composer 安装命令:
composer require a2workspace/laravel-model-builder
包简介
提供 Laravel 建立複雜資料的模型生成器
README 文档
README
ModelBuilder 提供創見複雜資料的模型生成器。
快速開始
一個簡單範例:
namespace App\ModelBuilders; use App\Models\Product; use A2Workspace\ModelBuilder\ModelBuilder; class ProductBuilder extends ModelBuilder { public function make() { $product = new Product; $product->name = $this->name; $product->price = $this->price; // ... return $product; } public function rules() { return [ 'name' => 'required', 'price' => 'required|int|min:1', ]; } }
安裝
composer require a2workspace/laravel-model-builder
寫一個模型生成器
要創見一個新的模型生成器,可以執行 make:builder artisan 命令:
php artisan make:builder ProductBuilder
定義如何製作模型
在 make() 方法中初始化並定義模型的屬性。
class ProductBuilder extends ModelBuilder { public function make(): Product { $product = new Product; $product->name = $this->name; $product->price = $this->price; // ... return $product; } }
修改器方法
ModelBuilder 有提供類似於 Model 的修改器方法。詳細參考官方文件 Accessors & Mutators。
class ProductBuilder extends ModelBuilder { public function setPriceAttribute($value) { if (0 >= $value) { throw new InvalidArgumentException('價格必須大於 0'); } $this->attributes['price'] = $value; } }
驗證
在 create() 時會進行驗證。
class ProductBuilder extends ModelBuilder { public function rules(): array { return [ // ... ]; } public function messages(): array { return [ // ... ]; } }
统计信息
- 总下载量: 61
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-09-04