[英]Looping over results with MongoDB and Lithium
我刚刚开始使用锂电,遇到了一个(可能非常简单...)问题,在该问题上我无法迭代简单查询的结果。 我已经将我的代码与各种示例进行了比较,虽然看不到任何差异,但一定有所不同!
// Controller
namespace app\controllers;
use app\models\POI;
class POIsController extends \lithium\action\Controller {
public function index($category) {
$data = POI::find('all', array('limit' => 10));
$this->set(array('data' => $data));
}
}
// Model
namespace app\models;
class POI extends \lithium\data\Model {
protected $_meta = array(
'source' => 'POI'
);
}
// View
print $data->count(); // outputs 10
foreach($data as $poi):?>
<?php print $poi->Name;?>
<?php endforeach; ?>
“视图”中的循环仅显示第一个项目的“名称”字段,而漏掉了其他显然存在的其他9个字段。
有谁知道为什么会这样吗?
一如既往,在提出问题后就会弹出答案...
我的模型没有设置通常的ID(它在字段“ ID”中具有键),因此我必须将其添加到架构和元数据中,否则我猜所有模型都被认为具有相同的空键,因此不会迭代。
更新的型号代码:
namespace app\models;
class POI extends \lithium\data\Model {
protected $_meta = array(
'source' => 'POI',
'key' => 'ID'
);
public $_schema = array(
'ID' => array('type'=>'id'),
'Name' => array('type'=>'string','null'=>false)
);
}
希望这可以在将来对其他人有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.