我有一个ObjectValue类型的类作为Test
const FIELD_NAME = 'fieldName';
/**
* @var string
*/
public $fieldName;
public function __construct($fieldName)
{
$this->fieldName = $fieldName;
parent::__construct();
}
protected function define(ClassDefinition $class)
{
$class->property($this->fieldName)->asString();
}
和对应的Mapper类
class TestMapper extends IndependentValueObjectMapper
{
protected function define(MapperDefinition $map)
{
$map->type(Test::class);
$map->property(Test::FIELD_NAME)->to('field_name')->asVarchar(255);
}
}
已将其迁移到dms。当我尝试添加field_name
并保存时,出现如下错误
无效的已提交内容:字段'field_name'的值应为字符串类型,给定为null(视图:\ dms-org \ web.laravel \ resources \ views \ components \ form \ staged-form.blade.php)
我没有给出null,而是我要添加的字符串
答案 0 :(得分:0)
我认为您正在使用构造函数来玩实体!
您能否将父构造函数调用放在第一行
public function __construct($fieldName)
{
parent::__construct();
$this->fieldName = $fieldName;
}
这将确保如果在构造函数上调用任何值,则父类已经正确设置。
我不确定您的情况...
如果我错了请忽略我
谢谢/祝你好运! :)