2013-08-01 58 views
0

我剛剛開始使用Lithium並遇到了一個(可能非常簡單)的問題,我無法遍歷簡單查詢的結果。我將我的代碼與各種樣本進行了比較,我看不出任何區別,但必須注意!使用MongoDB和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

一如既往的回答只是問問題後彈出......

我的模型沒有通常的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) 
    ); 

} 

希望這可以幫助別人,將來別人!

+0

很好的知道,打破迭代。謝謝。 – rmarscher