Reputation: 21
I am beginner with Neo4j Rest API. I am using Everyman php library to develop my application. I have problem with creating node with labels.
use Everyman\Neo4j\Client,
Everyman\Neo4j\Transport,
Everyman\Neo4j\Node,
Everyman\Neo4j\Relationship;
use Everyman\Neo4j\Cypher;
public function indexAction()
{
$client = new Client('localhost', 7474);
$user = new Node($client);
$user->setProperty('name', 'Rohan Chingula');
$user->save()->addLabels(array('Users'));
}
while I run code I am getting
/var/www/zf2-tutorial/vendor/everyman/neo4jphp/lib/Everyman/Neo4j/Command/SetLabels.php:43 Message: Cannot set a non-label
Upvotes: 0
Views: 739
Reputation: 1555
Try this:
$userLabel = $client->makeLabel('Users');
$user->save()->addLabels(array($userLabel));
User::addLabels
expects an array of Label objects.
https://github.com/jadell/neo4jphp/wiki/Labels#wiki-adding-labels-to-a-node
Aside: if adding a bare string as a label is functionality you would like to see, please submit a feature request: https://github.com/jadell/neo4jphp/issues
Upvotes: 1
Reputation: 1108
I'm no PHP coder, but a quick look at the source suggests you should be passing an array of Label objects not strings. Your code is not using Everyman\Neo4j\Label
$labelSet = implode(':', array_map(function ($label) {
if (!($label instanceof Label)) {
throw new InvalidArgumentException("Cannot set a non-label");
Upvotes: 0