Route::get('/', function () {
$tweets = Tweet::all();
return view('welcome', ['tweets' => $tweets]);
});
我正在使用mongodb创建一个laravel应用程序。
当我转到'/'时,我在mongod终端出现错误
AssertionException handling request, closing client connection: 10304 Client Error: Remaining data too small for BSON object
这是我的推文模型(在App \ Tweet中):
namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class Tweet extends Eloquent {
protected $collection = 'tweets_collection';
}
答案 0 :(得分:2)
出现此问题(Client Error: Remaining data too small for BSON object
)至少有两个原因:
<强> 1。 PHP MongoDB驱动程序与机器上安装的MongoDB不兼容。
(最初在first answer中提到)。
在<?php phpinfo();
页面上检查您计算机上设置的PHP驱动程序版本:
检索正在使用的MongoDB版本:
mongod --version\
# db version v3.2.0
使用compatibility table on MongoDB website查看检查的PHP MongoDB驱动程序版本是否与MongoDB版本兼容:
如果版本不兼容,则需要卸载其中一个现有部件并安装兼容版本。根据我自己的经验,更改PHP MongoDB驱动程序要容易得多,因为只需要不同的.so
扩展名文件。
<强> 2。计算机上安装了两个PHP MongoDB驱动程序。
由于不推荐使用MongoClient
,因此许多在线教程和文章(包括official mongo-php-driver repository on Github)现在指导安装mongodb
,而不是mongo
PHP驱动程序。但是之前的年份,每个人都指向mongo
分机。
由于从mongo
到mongodb
的此更改,我们可能会在php.ini
文件中定义两个扩展名。 只需确保在&#34;动态扩展&#34;下定义了一个扩展名。节:
希望有人在寻找解决问题的解决方案时能够得到这个答案。#34;对于BSON对象而言,剩余数据太小了#34;通过PHP MongoDB驱动程序使用MongoDB时出错。
答案 1 :(得分:0)
问题是Laravel无法与MongoDB通信,因为我一起使用mongodb-1.1 php驱动程序和MongoDB 3.2。根据此页面上的表格https://docs.mongodb.org/ecosystem/drivers/php/,这两个版本不兼容。我卸载了MongoDB 3.2并安装了MongoDB 3.O,问题解决了。