2016-10-02 2 views
1

Так что я просто начал писать свой API, и наткнулся на эту ошибку:Laravel NeoEloquent игнорирует «CONSTRAINT» на :: создать команду

При создании пользователя, который имеет уникальный CONSTRAINT дважды, Там возвращается исключение, но узел все еще создается!

Ограничением на «Пользователь: access_token» собственность, и я использую следующий код:

try { 
    $userAttributes = [ 
     "email" => $request->email, 
     "access_token" => 'aaaa', 
     "facebook_id" => 'bbbb' 
    ]; 
    $user = new User($userAttributes); 
    $user->save(); 
}catch (Exception $e){} 

Любая помощь пожалуйста?

+0

Можете ли вы запустить ': schema' в своем браузере Neo4j, чтобы убедиться, что ограничения были созданы правильно? Похоже, проблема выходит за рамки OGM. – Mulkave

+0

@Mulkave Вот вывод команды схемы: Индексы ON: Пользователь (по электронной почте) ONLINE (для единственности ограничения) ON: Пользователь (access_token) ONLINE (для единственности ограничения) Ограничения ON (Пользователь: Пользователь) ASSERT user.access_token IS UNIQUE ON (пользователь: Пользователь) ASSERT user.email IS UNIQUE –

ответ

1

Эта проблема возникает из-за ошибки underlying driver с использованием API REST вместо выполнения запроса Cypher. В качестве обходного пути (во время этого ответа) существует ветвь NeoElquent 1.5-dev, которая использует другой драйвер и будет использоваться для запуска Cypher в отношении базы данных. Этот филиал все еще находится в разработке, но в настоящее время полностью совместим с обратной связью.

Чтобы установить его, добавьте версию dev-1.5-dev в файл composer.json и запустите composer update vinelab/neoeloquent.

Смежные вопросы