我的CakePHP 3.0和我们服务器上的虚拟属性有一个奇怪的问题。 我们有一个具有以下虚拟属性的Photo Entity:
protected function _getPath()
{
[...]
return $path; // array with path for different photo sizes
}
在我们的开发服务器(Ubuntu,Apache,PHP 5.5.9-1ubuntu4.6)上,一切都运行良好。 在我们的生产服务器(Linux,Apache,PHP 5.5.23)上,除了数据对象中缺少虚拟属性外,该站点运行良好。
通过条目表从数据库中读取照片实体 - >包含并回显如下:
$entry->photos[0]['path']['wide'];
可以在两台服务器上读取Photo实体的基本属性,例如:
$entry->photos[0]['filename'];
另外我刚刚发现,两个服务器上的$ entry-> photo [0](或foreach循环中的$ photo)上的pr()是不同的。 在服务器上,一切按预期工作,我得到:
App\Model\Entity\Photo Object
(
[_accessible:protected] => Array
(
[user_id] => 1
[entry_id] => 1
[filename] => 1
[org_name] => 1
[description] => 1
[user] => 1
[entry] => 1
)
[_virtual:protected] => Array
(
[0] => path
)
[...]
并且在缺少虚拟财产的服务器上我得到:
Cake\ORM\Entity Object
(
[_properties:protected] => Array
(
[id] => 37
[user_id] => 1
[entry_id] => 4
[filename] => p19fng7349bb2p6nsac14j51qnu4.jpg
[...]
知道为什么缺少生产环境中的虚拟属性,以及为什么两台服务器上的对象都是不同类型的?
非常感谢!
西蒙