如何在 spatie 插件中使 DTO 成为可选

问题描述

我遇到了这个 https://github.com/spatie/data-transfer-object/issues/61 并且我一直在尝试实施

abstract class DataTransferObject extends SpatieDataTransferObject
{
    public function makeOptional(array $data): DataTransferObject
    {
        foreach ($data as $field => $value) {
            if (! property_exists(static::class,$field)) {
                unset($data[$field]);
            }
        }

        return new static($data);
    }
}

不知道如何让它工作。在我的模型中,当我执行 $this->jsonColumn 时它失败了。我尝试添加构造函数并在函数上方运行,但随后返回空。

final class OrderItemMeta extends DataTransferObject
{
    public $fn;
    public $ad;
    public $dd;
    public $dc;
    public $tc;
    public $tcl;
    public $la;
    public $p;

    public function __construct($params = []){
        $params = self::makeOptional($params);
        parent::__construct($params);
        return $params;
    }
}

json 中有额外的列需要忽略。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...