请问Laravel 如果使用修改器修改数组?

数据库images字段 想在每一个图片地址前面增加一个完整的网址

"images": ["storage/Q1iHXhFtsDcN2g9pupCPo6wydKa16USLBpxufzoG.jpg","storage/n8CsmcO5q5spam8ZnJfLoV7bd6Qvn2mtDN5xsJvs.jpg""storage/yt4LZt5UB1WL7ERue3apbjuU3Qn9Dm0JDrZg1GY9.jpg"],

最终想要的效果

"images": ["https:/127.0.0.1/storage/Q1iHXhFtsDcN2g9pupCPo6wydKa16USLBpxufzoG.jpg","https:/127.0.0.1/storage/n8CsmcO5q5spam8ZnJfLoV7bd6Qvn2mtDN5xsJvs.jpg""https:/127.0.0.1/storage/yt4LZt5UB1WL7ERue3apbjuU3Qn9Dm0JDrZg1GY9.jpg"],

我尝试

    public function images(): Attribute
    {
        return Attribute::get(function ($value){
            dd($value);  //这里无法获取到数组信息 而是字符串,所以无法foreach循环增加
        });
    }

看了Laravel文档都是关于修改一个属性的,没有找到相关方法;

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
porygonCN
最佳答案

因为你添加了修改器 所以casts不会生效 原本加casts转数组 现在需要手动加json_decode()转成数组

3年前 评论
李小明 (楼主) 3年前
讨论数量: 6

json_decode($json, true) 再对数组进行循环处理

3年前 评论
李小明 (楼主) 3年前
porygonCN

因为你添加了修改器 所以casts不会生效 原本加casts转数组 现在需要手动加json_decode()转成数组

3年前 评论
李小明 (楼主) 3年前
chowjiawei

这不是 获取器吗 我就在想 修改器改了完整路径 url如果换了 还得额外处理 肯定是获取器里面去返回完整的路径

json_decode($json, true) 然后字符串拼接 即可

3年前 评论
李小明 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!