我们已经知道访问器和修改器的用法。我们在 laravel 模型中使用访问器在检索记录时修改任何字段数据,并在插入数据库时使用突变器来修改任何字段数据。因此,要修改之前的任何字段,我们需要两个单独的方法用于单个字段,即一个用于访问器的方法和一个用于修改器的方法,但是在最新的 laravel 版本中,我的意思是在 laravel 8.77.0 中,我们可以对访问器和修改器使用一个方法使用闭包。下面给出了单个方法访问器和修改器的语法
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Carbon\Carbon;
class Order extends Model
{
/**
* Get the order tax.
*/
protected function order_date(): Attribute
{
return new Attribute(
fn ($value) => Carbon::parse($value)->format('d-m-Y'), // accessor
fn ($value) => Carbon::parse($value)->format('Y-m-d'), // mutator
);
}
}