7.x 重大特性 - 自定义属性 Cast
定义
<?php
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
class AddressCaster implements CastsAttributes
{
public function get($model, $key, $value, $attributes)
{
return new Address(
$attributes['address_line_one'],
$attributes['address_line_two']
);
}
public function set($model, $key, $value, $attributes)
{
return [
'address_line_one' => $value->lineOne,
'address_line_two' => $value->lineTwo
];
}
}
使用
$user->address->lineOne = 'New Line 1';
$user->save();
推荐文章: