#php #neo4j #laravel-5.2 #neoeloquent
#php #neo4j #laravel-5 #neoeloquent
Вопрос:
Итак, я только начал писать свой API и наткнулся на эту ошибку:
При создании пользователя, который дважды имеет уникальное ОГРАНИЧЕНИЕ, возвращается исключение, но узел все еще создается!
Ограничение относится к свойству «User: access_token», и я использую следующий код:
try {
$userAttributes = [
"email" => $request->email,
"access_token" => 'aaaa',
"facebook_id" => 'bbbb'
];
$user = new User($userAttributes);
$user->save();
}catch (Exception $e){}
Любая помощь, пожалуйста?
Комментарии:
1. Не могли бы вы запустить
:schema
в своем браузере Neo4j, чтобы убедиться, что ограничения были созданы правильно? Похоже, проблема выходит за рамки OGM.2. @Mulkave Вот результат команды схемы: Индексы ДЛЯ: User (email) ОНЛАЙН (для ограничения уникальности) ДЛЯ: User (access_token) ОНЛАЙН (для ограничения уникальности) Ограничения ДЛЯ (user: User) УТВЕРЖДАЮТ пользователя.access_token УНИКАЛЕН ДЛЯ (user: User) УТВЕРЖДАЮТ пользователя.электронная почта ЯВЛЯЕТСЯУНИКАЛЬНЫЙ
Ответ №1:
Эта проблема связана с тем, что базовый драйвер использует REST API вместо выполнения запроса Cypher. В качестве обходного пути (на момент этого ответа) существует ветвь 1.5-dev
NeoEloquent, которая использует другой драйвер, и она будет использоваться для запуска Cypher в базе данных. Эта ветвь все еще находится в стадии разработки, но в настоящее время полностью обратно совместима.
Чтобы установить его, добавьте версию dev-1.5-dev
в свой composer.json
файл и запустите composer update vinelab/neoeloquent
.