akaadream/extendedmodel

ExtendedModel - 享受Laravel模型更好的体验

v1.1.0 2024-04-20 10:19 UTC

This package is not auto-updated.

Last update: 2024-09-21 12:27:10 UTC


README

Latest stable version

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