2014-02-10 55 views
2

我即将开始一个新的Web项目,并且我决定使用Laravel 4.但是,由于需要存储的数据结构,我还决定Neo4J作为数据库。现在,我已经安装了用于处理Neo4J的Laravel软件包,可以找到here,我可以使用使用示例访问Neo4J数据库。Neo4J和Laravel 4模型

但是,现在我完全丧失了如何为这个新数据库编写Eloquent模型,以及如何使用Laravel Auth类。我曾经使用过没有ORM的Codeigniter,所以我理解模型结构,但我不知道如何在Neo4J中使用雄辩ORM,或者如何破解我的模型和身份验证,以便它们不使用ORM。我的猜测是,我可能不得不编写自己的查询,而不依赖Laravel查询构建器或Eloquent,但我不知道如何启动此过程或如何编写包含这些查询的模型。

我已阅读了Laravel网站上的所有内容,但身份验证和数据库访问都与非图形数据库有关。如果任何人有任何提示要阅读什么或在哪里寻找更多的信息,我会很感激。

回答

5

那么,我最终为Laravel 4.1写了自己的neo4j驱动程序。如果任何人有兴趣,你可以找到它here。至于在Neo4J中存储身份验证数据,我为此编写了自己的身份验证驱动程序。我也最终创建了自己的验证器来检查数据库的具体内容(如unique)。

0

你不能在Neo4j中使用Eloquent或Fluent,他们只是不支持。图形数据库结构非常不同,所以可能永远不会。

您的模型不应该担心它是如何存储的,这是存储库的工作。你的Neo4J代码应该存在于那里。例如,在你的仓库,你可能有:

public function find($id) 
{ 
    return Neo4j::getNode($id); 
} 

然后在你的控制器,你可以拨打:

MyRepository::find(123); 

你不应该存储在图形数据库身份验证信息,他们应该还是MySQL或类似的东西。

这里有更多关于知识库的阅读http://culttt.com/2013/07/08/creating-flexible-controllers-in-laravel-4-using-repositories/。但是我还没有找到任何Neo4J的具体例子。

希望有所帮助。

+1

为什么我会在MySQL中存储身份验证详细信息,当我可以密码保护Neo4J安装,并保持用户在那里与散列密码? – SuperTron

0

我们知道Neo4j和Mysql的区别。但是有时候我们需要使用雄辩给出的类似功能。因此,我建议遵循这一项目:NeoEloquent