请问:dacatadmin 框架,form 表单使用 tree 字段,新增提交时候报错:Array to string conversion {“exception”:”[object]

1. 运行环境

本地,dcatadmin框架

1). 当前使用的 Laravel 版本?

Laravel Framework 8.83.27
//: <> (使用 php artisan --version 命令查看)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
PHP 7.4.33 (cli) (built: Jun 6 2024 19:16:29) ( NTS )

php-fpm 版本:
-
//: <> (代码里 phpinfo 函数,然后页面访问查看 php-fpm 版本)
//: <> (如不方便使用 phpinfo 函数 ,使用 ps aux | grep php-fpm.conf 命令查)
//: <> ( 看 php-fpm 版本。如有多个,请以 nginx 站点配置为准。)

3). 当前系统

macos
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8 )

4). 业务环境

开发环境
//: <> (期待信息 开发环境生产环境)
//: <> (是否使用负载均衡?请提供相关信息)

5). 相关软件版本

mysql5.7
//: <> (提供相关软件的版本,如 Nginx 、MySQL、MongoDB 等)

2. 问题描述?

dacatadmin 框架,form 表单使用 tree 字段,新增提交时候报错:Array to string conversion {“exception”:”[object] (ErrorException (code: 0): Array to string conversion

form 表单代码如下:

Laravel

尝试过只保留 tree 提交保存不行,如果屏蔽掉 tree 结构提交保存成功,可以定位是 tree 的值有问题

3. 您期望得到的结果?

正常表单新增保存成功!

4. 您实际得到的结果?

Laravel

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案
class CaseMusic extends Model {

    //自动设置转换
    //protected $casts = [
    //    "tree" => "array",
    //];

    //手动设置
    public function setImagesAttribute($val){
        $this->attributes['tree'] = json_encode($val);
    }
    //手动转换
    public function getImagesAttribute($val)
    {
        return json_decode($val, true);
    }
}
6个月前 评论
讨论数量: 2

model 里面,设置转换器,把字段设置为 array 或者 json

6个月前 评论
class CaseMusic extends Model {

    //自动设置转换
    //protected $casts = [
    //    "tree" => "array",
    //];

    //手动设置
    public function setImagesAttribute($val){
        $this->attributes['tree'] = json_encode($val);
    }
    //手动转换
    public function getImagesAttribute($val)
    {
        return json_decode($val, true);
    }
}
6个月前 评论

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