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

时间:2015-09-16 08:43:17

标签: php cakephp entity 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

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

'[original]' => [
            'caption' => 'original caption'
        ],
echo $attachment-> ???

1 个答案:

答案 0 :(得分:8)

转储对象并不一定能为您提供对象结构的实际表示,而是通过the magic __debugInfo() method定义的自定义格式化调试信息。

括号中的属性是特殊的调试信息,除了具有相同名称的属性之外,可能从任何地方收集的内容都已收集。

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

echo $attachment->getOriginal('caption');