详解laravel如何安装jenssegers/laravel-mongodb扩展

2022-05-15 0 170

项目中使用了mongoDB,所以就到最大的同性交友网站找到了星星最多的jenssegers/laravel-mongodb

包安装

1、根据README,找到本地laravel对应的包版本
详解laravel如何安装jenssegers/laravel-mongodb扩展

2、开发环境中使用 composer requir 引入

3、配置config/app.php

        /*         * mongoDB         */        Jenssegers\\Mongodb\\MongodbServiceProvider::class,

4、database.php 配置

"mongodb" => [      "driver" => "mongodb",      "host" => "127.0.0.1",      "port" => 27017,      "database" => "data",      "username" => "test",      "password" => "test",   ],

:如果项目不涉及到mysql,那么可以直接将上面的默认数据引擎改成mongodb,关于env方法的说明就不具体阐述了

'default' => env('DB_CONNECTION', 'mysql'),

5、代码中使用

// 获取数据        $mongo = \\DB::connection("mongodb")            ->collection($collection)//            ->where("****","***")            ->first();

问题

1、unsupported driver [mongodb]

tip1检查phpinfo是否包含mongoDB拓展,如果没有mongoDB的拓展,请自行安装再试
tip2重点!一定要检查laravel的日志文件
在我检查了mongoDb拓展之后还是不支持,查看日志:

Type error: Argument 3 passed to MongoDB\\Driver\\Server::executeQuery() must be an instance of MongoDB\\Driver\\ReadPreference or null, array given {"exception":"[object] (Symfony\\\\Component\\\\Debug\\\\Exception\\\\FatalThrowableError(code: 0): Type error: Argument 3 passed to MongoDB\\\\Driver\\\\Server::executeQuery() must be an instance of MongoDB\\\\Driver\\\\ReadPreference or null, array given at F:\\\\project\\\\interface_center_jtl\\\\vendor\\\\mongodb\\\\mongodb\\\\src\\\\Operation\\\\Find.php:299)

追到具体的位置,通过修改此处的返回,再次打印,发现已经可以正常使用get/first方法。insert方法同理,不过是修改同目录下的InsertMany

详解laravel如何安装jenssegers/laravel-mongodb扩展

!!从源头解决这个问题的正确方法,查看phpinfo里面,将mongo的拓展,升级到最新的stable版本!具体请查看我以前的文章centos源码安装php7以上的mongodb拓展,如果是windows,直接下载dll文件就行了

2、Authentication failed.

tip1检查密码账号,再用工具连接,看看是不是自己配置错误

tip2使用原生方法进行测试,如果原生能够连接,包方法却不能连接,那就考虑包的问题

 // %40是@符号的转义 $manager = new \\MongoDB\\Driver\\Manager("mongodb://mongo:user:passwd%40abcdef@127.0.0.1:27017"); $query=new \\MongoDB\\Driver\\Query([]); $cursor = $manager->executeQuery('test.test', $query); dd($cursor);

·如上,发现依旧不能连接,考虑mongo的问题了,再次测试,同事发现连接写法经过修改之后就能成功!如下:

 $manager = new \\MongoDB\\Driver\\Manager("mongodb://mongo:user:passwd%40abcdef@127.0.0.1:27017/data");

·百思不得骑姐之下,对比了mongoDB的版本,发现测试环境居然是个老版本。。/手动喷血

·在和运维与测试沟通了之后,为了保持线上版本的稳定性和敏捷开发的机动性,遂决定做代码兼容。
再次打开包内源码,发现了如下的细节(敲黑板:注意看路径,此时是jenssegers包内)
详解laravel如何安装jenssegers/laravel-mongodb扩展知道原理之后,于是在配置文件中做了如下修改:

详解laravel如何安装jenssegers/laravel-mongodb扩展

至此,add、commint、push,收工!

相关推荐:最新的五个Laravel视频教程

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 详解laravel如何安装jenssegers/laravel-mongodb扩展 https://www.jike1995.com/36334.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务