[编辑]:好的,我在测试期间多次更新了这篇文章,现在它正在运行……我在下面给出了正确的代码… [/ EDIT]
从今天早上起,我正在尝试使用“Neoxygen / Neoclient”作为ServiceProvider和Facade进入Laravel 5.1的全新安装
为此,我在composer.json中需要“neoxygen / neoclient”:“^ 3.0”
然后我在“app / Providers”中创建了一个名为“NeoClientServiceProvider”的新ServiceProvider.
在其登记方法;我已经实例化了连接:
public function register() { $this->app->singleton('neoclient',function ($app) { return ClientBuilder::create() ->addConnection('default','http',env('NEO4J_HOST'),intval(env('NEO4J_PORT')),true,env('NEO4J_USER'),env('NEO4J_PASSWORD')) ->setDefaultTimeout( intval(env('NEO4J_TIMEOUT')) ) ->setAutoFormatResponse(true) ->build(); }); }
接下来,我通过在我的提供程序中包含Full Class并设置别名,在“config / app.PHP”中注册了ServiceProvider:
'providers' => [ ... App\Providers\NeoClientServiceProvider::class ... ],'aliases' => [ ... 'NeoClient' => App\NeoClient::class ... ]
我还创建了一个NeoClient类,它扩展了Facade,如下所示:
<?PHP namespace App; use \Illuminate\Support\Facades\Facade; class NeoClient extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'neoclient'; } }
最后我有一个像这样的控制器:
<?PHP namespace App\Http\Controllers; use NeoClient; class GenreController extends Controller { public function __construct() { // needed authentication //$this->middleware('oauth'); } public function create() { $data = NeoClient::sendCypherQuery("MATCH (g:Genre) RETURN COUNT(g) AS total")->getRows(); return response()->json($data); } }
PS:我知道“NeoEloquent”存在,但我不想使用这个……
弗雷德.
解决方法
当然你可以!这是客户的链接: