数据库表c_sale_receipts  字段sale_order_nos 是 json 类型

若原本字段保存的是被序列化的 JSON,则 array 类型转换将会特别有用。

例如,在你的数据库中有一个 JSON 或 TEXT 字段类型,其包含了 被序列化的 JSON,且对该属性添加了 array 类型转换。

当你在 Eloquent 模型上访问该属性时,它将会被自动反序列化成一个 PHP 数组:

    <?php    
    namespace App\Models\Prod;
    use App\Models\User;
    use Illuminate\Database\Eloquent\Model;
    class SaleReceipt extends Model
    {
        //
        protected $fillable = ['type','flag', 'order_no', 'sale_order_no', 'sale_order_nos', 'order_money', 'pay_money', 'receipt_rate', 'receipt_date', 'currency_rate', 'bank_fee', 'bank_id', 'bank_info', 'note', 'status', 'manage_id','manage_name','out_trade_no','trade_no','trade_status','trade_time','notify_data','pay_method','refund_id','refund_bank_info'];
        //设置sale_order_nos 为array,则sale_order_nos 为数组保存时候,会自动转换为json 存储进去,取的时候回自动转换为array数组
        protected $casts = ['sale_order_nos' => 'array'];
        public function manage()
        {
            return $this->hasOne(User::class, 'id', 'manage_id');
        }
    }

一旦类型转换被定义,则可以访问 sale_order_nos属性,它将会自动把 JSON 反序列化成一个 PHP 数组。

当你设置 sale_order_nos属性的值时,指定的数组将会被自动序列化成 JSON 以便进行保存:

    $saleReceipt = App\SaleReceipt::find(1);    
    $sale_order_nos = $user->sale_order_nos;
    $sale_order_nos ['key'] = 'value';
    $saleReceipt->sale_order_nos = $sale_order_nos 
    $saleReceipt>save();