我们正在努力完成fat free framework的长篇教程。我们已经建立了与数据库的连接并理解了它的工作原理。但是,我们陷入了关于mapping a table并加载单个记录的部分。
这是相关代码:
$f3->route('GET /',
function($f3){
$db=new DB\SQL(
'mysql:host=localhost;port=3306;dbname=liselore',
'jow',
''
);
$test1 = new DB\SQL\Mapper($db,'test1');
$test1->load('id=1');
$f3->set('result', $test1);
$template = new Template;
echo $template->render('views/homepage.html');
}
);
$f3->run();
这是模板文件:
<repeat group="{{ @result }}" value="{{ @item }}">
<li>{{ @item.name }} : {{@item.age}}</li>
</repeat>
我没有收到错误,所以我看不出这里有什么问题。一些帮助将不胜感激。
THX,
答案 0 :(得分:4)
$test1
是一个映射器对象,而不是数组。
因此,您的模板应如下所示:
<li>{{@result->name}} : {{@result->age}}</li>
注意:您不应混淆映射器load
和find
方法。 load
方法用一条记录水合当前映射器对象。 find
方法返回映射器对象的数组。 E.g:
$test1->load('id=1')
的效果是将对象$test1
映射到数据库行ID为1。$list=$test1->find("name LIKE 'A%'")
的效果是返回名称以A