请问: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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案
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);
    }
}
8个月前 评论
讨论数量: 2

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

8个月前 评论
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);
    }
}
8个月前 评论

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