akaadream / extendedmodel
ExtendedModel - 享受Laravel模型更好的体验
v1.1.0
2024-04-20 10:19 UTC
Requires
- php: ^8.2
- illuminate/console: ^v11.4.0
- illuminate/contracts: ^v11.4.0
- illuminate/database: ^v11.4.0
- illuminate/http: ^v11.4.0
- illuminate/support: ^v11.4.0
This package is not auto-updated.
Last update: 2024-09-21 12:27:10 UTC
README
Laravel ExtendedModel 是一个用于升级默认 Eloquent 模型可能性的包。ExtendedModel 提供了一个名为 createOrUpdateWith
的新方法,该方法使用请求输入来填充模型实例。
不再需要大数组初始化模型属性!
安装
您可以使用 composer 安装此包
composer require akaadream/extendedmodel
用法
您应该将默认命令 php artisan make:model
替换为 php artisan make:extendedmodel
以快速创建一个扩展模型。例如,php artisan make:extendedmodel MyModel
将为您生成这个类
use \Akaadream\ExtendedModel\ExtendedModel; class MyModel extends ExtendedModel { // }
现在您可以在控制器内部使用 createOrUpdateWith
方法了
// ... public function store (Request $request) { MyModel::createOrupdateWith(new MyModel, $request); }
请注意,所有请求的输入都必须遵循模型属性的名称。因此,如果您的模型有一个 name
属性,该方法将尝试找到 $request->input('name')
来分配其值。
您还可以在方法的第三个参数中放置一个选项数组,如果您想要为任何模型属性赋予特定的值。例如,如果您需要上传文件,然后想要将文件名放入模型中的图片属性,您可以这样做
public function store (Request $request) { $filename = "extendedmodelimage.png"; // ... image upload MyModel::createOrUdateWith(new MyModel, $request, ['image' => $filename]); }