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();
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4

laravel 在处理数据库这块做的真的太吊了,应该是目前最好用的 orm 没有之一了

5年前 评论
游离不2

完全没看懂这例子。

5年前 评论
pan_zoe 5年前

这个接口类似定义在哪个文件的?

5年前 评论

用惯了 Laravel 的 ORM 再去用 go 的 Gorm 和 Xorm 简直是生不如死,关键 Gorm 还号称对开发者友好 :joy:

5年前 评论