0

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 つを見逃しています。

なぜこれが起こっているのかについて誰か考えがありますか?

4

1 に答える 1

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

}

これが将来誰かを助けることができることを願っています!

于 2013-08-01T22:20:10.427 に答える