如何访问实体属性的原始值?

Sal*_*nes 2 php entity cakephp cakephp-3.0

debug($attachment);

object(App\Model\Entity\Attachment) {

    'id' => (int) 73,
    'apartment_id' => (int) 1,
    'name' => 'bla bla bla',
    'caption' => 'bla bla',
    'position' => (int) 1,
    '_locale' => 'eng',
    '[new]' => false,
    '[accessible]' => [
        '*' => true
    ],
    '[dirty]' => [],
    '[original]' => [
        'caption' => 'original caption'
    ],
    '[virtual]' => [],
    '[errors]' => [],
    '[repository]' => 'Attachments'

}
echo $attachment->caption; # bla bla
Run Code Online (Sandbox Code Playgroud)

如何访问和打印此阵列的一部分?

'[original]' => [
            'caption' => 'original caption'
        ],
echo $attachment-> ???
Run Code Online (Sandbox Code Playgroud)

ndm*_*ndm 8

转储对象不一定能为您提供对象结构的实际表示,而是通过魔术__debugInfo()方法定义的自定义格式化调试信息.

括号中的属性是特殊的调试信息,显示的内容可能是从任何地方收集的,但是具有相同名称的属性.

我建议您阅读文档并查看源代码,在那里您可以找到EntityTrait::getOriginal()方法,它允许您从受保护EntityTrait::$_original属性读取值,这是特殊[original]调试信息属性从中获取数据的位置.

echo $attachment->getOriginal('caption');
Run Code Online (Sandbox Code Playgroud)

看到