Php 使用F3框架和mongodb为foreach()提供支持
我必须使用F3框架和MongoDb。我在当地工作,试图从我的mongo数据库中获取数据 我得到了一个名为“wtfay”的数据库和一个名为“学生”的集合。当我尝试使用find()方法让所有学生返回我的导航器时:“内部服务器错误”。已为foreach()提供。这个foreach位于工厂函数中框架的“mapper.php”第87行Php 使用F3框架和mongodb为foreach()提供支持,php,mongodb,foreach,fat-free-framework,Php,Mongodb,Foreach,Fat Free Framework,我必须使用F3框架和MongoDb。我在当地工作,试图从我的mongo数据库中获取数据 我得到了一个名为“wtfay”的数据库和一个名为“学生”的集合。当我尝试使用find()方法让所有学生返回我的导航器时:“内部服务器错误”。已为foreach()提供。这个foreach位于工厂函数中框架的“mapper.php”第87行 protected function factory($row) { $mapper=clone($this); $mapper->reset();
protected function factory($row) {
$mapper=clone($this);
$mapper->reset();
foreach ($row as $key=>$val)
$mapper->document[$key]=$val;
$mapper->query=array(clone($mapper));
if (isset($mapper->trigger['load']))
\Base::instance()->call($mapper->trigger['load'],$mapper);
return $mapper;
}
为了连接数据库,我创建了一个studentsModel
namespace APP\MODELS;
class StudentsModel extends \DB\Mongo\Mapper {
public function __construct() {
parent::__construct( new \DB\Mongo(new \MongoClient ('mongodb://127.0.0.1:27017'), 'wtfay'), 'students' );
}
}
在控制器中,为了让所有学生都参与进来,我做了以下工作:
public function get($f3, $params) {
$this->_data = $this->_studentsModel->find();
}
谢谢你的要求
ADR Dra尚未尝试扩展Mongo映射器的方法,但您是否100%确定DB甚至返回任何数据?除此之外,您不必手动创建MongoClient对象。如果您只传递DSN字符串,F3就会为您这样做。当我将终端与mongo一起使用时,我执行:db.students.find()和mongo给我JSON。