Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在保存所有对象属性,是否可以仅保留I';你有地图吗?_Php_Doctrine_Mongodb - Fatal编程技术网

Php 正在保存所有对象属性,是否可以仅保留I';你有地图吗?

Php 正在保存所有对象属性,是否可以仅保留I';你有地图吗?,php,doctrine,mongodb,Php,Doctrine,Mongodb,我正在使用Doctrine 2 ODM(与MongoDB一起使用) 我的文档模型: class Users_Model_User { public $id; public $username; public $password; public $myRuntimeProperty = 'some value'; } 我的YAML文档映射: Users_Model_User: db: my_db collection: users fields: id:

我正在使用Doctrine 2 ODM(与MongoDB一起使用)

我的文档模型:

class Users_Model_User
{
    public $id;
    public $username;
    public $password;
    public $myRuntimeProperty = 'some value';
}
我的YAML文档映射:

Users_Model_User:
db: my_db
collection: users
fields:
    id:
        fieldName: id
        id: true
    username:
        fieldName: username
        type: string
    password:
        fieldName: password
        type: string
我的测试代码:

$user = new Users_Model_User;
$user->username = 'hello';
$user->password = 'world';
$this->dm->persist($user);
$this->dm->flush();

$user = $this->dm->findOne('Users_Model_User', array('username' => 'hello'));

Zend_Debug::dump($user);
我的结果是:

object(Users_Model_User)#81 (4) {
  ["id"] => string(24) "4c1d5eb68ead0eb332000000"
  ["username"] => string(5) "hello"
  ["password"] => string(5) "world"
  ["myRuntimeProperty"] => string(10) "some value"
}

如何使“myRuntimeProperty”不与文档一起保存?我的模型将与所有属性一起保存,包括“\u Property ChangedListeners”之类的内容,当模型重新加载时,这些属性会把所有内容都搞乱。

从未使用过,但看起来有两种情况发生了:

  • 条令有一个相当严重的错误,它忽略了你的YML定义
  • 你不是在“勾搭”YML档案
  • 看,这里似乎需要一些额外的“魔力”:

    这可能是你的问题吗

    $driver = new YamlDriver(array('/path/to/files'));
    $config->setMetadataDriverImpl($driver);