jgrossi/laravel-mutable

轻松更改模型属性值

0.1.1 2017-07-20 17:40 UTC

This package is auto-updated.

Last update: 2024-09-21 20:31:00 UTC


README

使用简单且干净的方式更改 Laravel 模型的 toArray()

安装

composer require jgrossi/laravel-mutable

用法

首先将 Mutable 特性添加到您想要更改值的模型中

use Jgrossi\Mutable\Mutable;

class User extends Eloquent
{
    use Mutable;
}

然后在您的应用程序中的任何位置创建一个 UserMutator 类(或者如果您更喜欢,可以给它其他名称)。然后设置模型中的 $mutator 属性

use App\Models\Mutators\UserMutator;
use Jgrossi\Mutable\Mutable;

class User extends Eloquent
{
    use Mutable;

    protected $mutator = UserMutator::class;
}

在您的修改类中,您可能有一个针对您想要更改的每个属性的方法

namespace App\Models\Mutators;

use Carbon\Carbon;
use Jgrossi\Mutable\Mutator;

class UserMutator extends Mutator
{
    public function firstName($value)
    {
        return ucfirst($value);
    }

    public function createdAt(Carbon $date)
    {
        return $date->format('Y-m-d');
    }
}

然后当使用 $user->toArray() 时,您将看到 first_name 属性已更改。

class FooController extends Controller
{
    public function show($id)
    {
        $user = User::findOrFail($id);

        return $user; // returns the changed User as array
    }
}

许可证

MIT 许可证 © Junior Grossi