我刚刚开始使用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个项目。
有没有人对为什么会这样做有任何想法?
答案 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)
);
}
希望将来可以帮助其他人!