簡體   English   中英

使用MongoDB和Lithium遍歷結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM