使用MongoDB和Lithium循环结果

时间:2013-08-01 22:04:04

标签: php mongodb lithium

我刚刚开始使用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个项目。

有没有人对为什么会这样做有任何想法?

1 个答案:

答案 0 :(得分:1)

一如既往,在提出问题之后,答案就会弹出......

我的模型没有通常的ID设置(它在字段“ID”中有键)所以我不得不将其添加到模式和元数据中,否则我猜所有的模型都被认为具有相同的空key,所以不会迭代。

更新了型号代码:

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)
    );

}

希望将来可以帮助其他人!