2016-10-02 49 views
1

所以我剛開始寫我的API,以及跨越這個bug傳來:Laravel NeoEloquent忽略了::創建命令「約束」

在創建具有唯一約束兩次的用戶,有異常返回,但節點仍在創建中!

的約束是對 「用戶:ACCESS_TOKEN」 屬性, ,我用下面的代碼:

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

任何幫助嗎?

+0

您可以在Neo4j瀏覽器中運行':schema'以確保約束創建正確嗎?似乎這個問題超出了OGM。 – Mulkave

+0

@Mulkave這裏是從模式命令的輸出: 索引 ON:用戶(電子郵件)ONLINE(對於唯一性約束) ON:用戶(的access_token)ONLINE(對於唯一性約束) 約束 ON(用戶:用戶) ASSERT user.access_token IS UNIQUE ON(user:User)ASSERT user.email IS UNIQUE –

回答

1

此問題歸因於underlying driver使用REST API而不是執行Cypher查詢。作爲一種解決方法(在此答案時),有一個NeoEloquent分支1.5-dev使用不同的驅動程序,它將用於運行Cypher對數據庫。該分支仍在開發中,但目前完全向後兼容。

要安裝它,請將版本dev-1.5-dev添加到您的composer.json文件並運行composer update vinelab/neoeloquent