Php NEO4HP REST API将节点创建为';默认值';

Php NEO4HP REST API将节点创建为';默认值';,php,neo4j,neo4jphp,Php,Neo4j,Neo4jphp,在我的域模型中,我有一个名为User的实体,我正在创建一个新节点 以这种方式属于该类型: public static function register(User $user){ if(!$user->node) $user->node = new Node(Neo4jClient::client()); try { $user->node->setProperty('__type

在我的域模型中,我有一个名为
User
的实体,我正在创建一个新节点 以这种方式属于该类型:

public static function register(User $user){
        if(!$user->node)
            $user->node = new Node(Neo4jClient::client());      
        try {
            $user->node->setProperty('__type__', TYPE_USER);
            $user->node->setProperty('username', $user->getUsername());
            $user->node->setProperty('password', $user->getPassword());
            $user->node->setProperty('name', $user->getName());
            $user->node->setProperty('age', $user->getAge());
            $user->node->setProperty('location', $user->getLocation());
            $user->node->setProperty('website', $user->getWebsite());
            $user->node->setProperty('about', $user->getAbout());
            $user->node->setProperty('rating', $user->getRating());
            $user->node->save();

            $user->setId($user->node->getId());

            $userIndex = new Index(Neo4jClient::client(), Index::TypeNode, TYPE_USER);
            $userIndex->add($user->node, 'username', $user->username);

            return true;
        } catch (Exception $e){
            return false;
        }
    }
然后,在数据库中创建节点,一切正常。除了……这样,节点被创建为“默认节点”,就好像我在使用cypher
CREATE n
,例如。 我真正想要的是创建一个特定类型的节点,如
create(n:User)
,但不必直接使用cypher

你知道怎样才能做到这一点吗?

你想使用Neo4j“标签”。试试这个:

$userLabel = Neo4jClient::client()->makeLabel('User');
$user->node->addLabels(array($userLabel));

这里的更多信息:

Hmm,我得到了
调用未定义方法Everyman\Neo4j\Client::makeLabel()
错误。我刚刚检查了一下,在我使用的
neo4jphp.phar
中(最新的一个)没有标签类。phar非常过时,在neo4jphp的下一版本中被弃用。请使用Composer安装库。感谢帮助Josh:)