Можно сохранить только отдельные свойства

У меня есть следующий класс "Пользователь":

<?php

use GraphAware\Neo4j\OGM\Annotations as OGM;

/**
 * @OGM\Node(label="User")
 */

class User {
    /**
     * @OGM\GraphID
     * @var int
     */
    protected $id;

    /**
     * @OGM\Property(type="string")
     * @var string
     */
    protected $username;

    /*
     * @OGM\Property(type="string")
     * @var string
     */
    protected $password;

    /*
     * @param string $username
     * @param string $password
     */
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }

    /*
     * @return string
     */
    public function getUsername() {
        return $this->username;
    }

    /*
     * @return string
     */
    public function getPassword() {
        return $this->password;
    }

    /*
     * @param string $password
     */
    public function setPassword($password) {
        $this->password = $password;
    }
}

Я пытаюсь работать с ним, как показано:

>>> require_once 'User.php'
=> 1
>>> use GraphAware\Neo4j\OGM\EntityManager;
=> null
>>> $manager = EntityManager::create('http://neo4j:superstrongpassword@localhost:7474');
=> GraphAware\Neo4j\OGM\EntityManager {#171
     +"annotationDriver": GraphAware\Neo4j\OGM\Mapping\AnnotationDriver {#178},
   }
>>> $x = new User('foo', 'bar');
=> User {#217}
>>> $manager->persist($x)
=> null
>>> $manager->flush()
=> null

Однако, если я выполню следующий запрос в «браузере» Neo4j, я просто увижу, что создается следующее:

$ match (x) return x
Rows
x: username:    foo

Создание других свойств, по-видимому, пропущено.

Я считаю, что мне не хватает чего-то довольно простого; в чем проблема с приведенным выше кодом?


person user2064000    schedule 05.07.2016    source источник


Ответы (1)


В докблоках для аннотации пароля @Property отсутствует *:

    /*
     * @OGM\Property(type="string")
     * @var string
     */
    protected $password;

Первая строка: /* должна быть с двумя звездочками /**

    /**
     * @OGM\Property(type="string")
     * @var string
     */
person Christophe Willemsen    schedule 05.07.2016