从数组创建 DataObject 的 SilverStripe 始终显示标题字段的“#”/散列
SilverStripe creating DataObject from array is always showing "#"/ hash for the Title field
我正在从事 SilverStripe 项目。现在我正在尝试从数组创建 DataObject 实例。我就是这样创建的。
$dataObject = \SilverStripe\ORM\DataObject::create([
'Title' => 'This is my title',
'Body' => 'This is the body',
'Intro' => 'Thi is the intro',
])
object 已创建。问题是当我尝试访问 object 的标题值时。我像这样打印出标题字段。
echo $dataObject->Title;
它打印出#/hash 而不是打印出Title 值。当我使用 toMap() 将它转换为数组时,我可以看到标题值在那里。但我想从 object 中获取标题值。出了什么问题,我该如何解决?
我们必须创建自己的自定义 class 来扩展 DataObject
并使用它。 DataObject
没有 Title
字段、Body
字段、Intro
字段甚至没有数据库 table 来存储数据。
例如我们可以调用 class Course
:
use SilverStripe\ORM\DataObject;
class Course extends DataObject
{
private static $db = [
'Title' => 'Varchar(255)',
'Body' => 'Text',
'Intro' => 'Text',
];
}
然后我们可以使用我们的Course
class如下:
$course = Course::create([
'Title' => 'This is my title',
'Body' => 'This is the body',
'Intro' => 'Thi is the intro',
]);
$course->write();
echo $course->Title;
我正在从事 SilverStripe 项目。现在我正在尝试从数组创建 DataObject 实例。我就是这样创建的。
$dataObject = \SilverStripe\ORM\DataObject::create([
'Title' => 'This is my title',
'Body' => 'This is the body',
'Intro' => 'Thi is the intro',
])
object 已创建。问题是当我尝试访问 object 的标题值时。我像这样打印出标题字段。
echo $dataObject->Title;
它打印出#/hash 而不是打印出Title 值。当我使用 toMap() 将它转换为数组时,我可以看到标题值在那里。但我想从 object 中获取标题值。出了什么问题,我该如何解决?
我们必须创建自己的自定义 class 来扩展 DataObject
并使用它。 DataObject
没有 Title
字段、Body
字段、Intro
字段甚至没有数据库 table 来存储数据。
例如我们可以调用 class Course
:
use SilverStripe\ORM\DataObject;
class Course extends DataObject
{
private static $db = [
'Title' => 'Varchar(255)',
'Body' => 'Text',
'Intro' => 'Text',
];
}
然后我们可以使用我们的Course
class如下:
$course = Course::create([
'Title' => 'This is my title',
'Body' => 'This is the body',
'Intro' => 'Thi is the intro',
]);
$course->write();
echo $course->Title;