无脂框架 - SQL映射器 - 加载方法

时间:2013-11-13 10:00:56

标签: php sql fat-free-framework

我们正在努力完成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,

1 个答案:

答案 0 :(得分:4)

$test1是一个映射器对象,而不是数组。

因此,您的模板应如下所示:

<li>{{@result->name}} : {{@result->age}}</li>

注意:您不应混淆映射器loadfind方法。 load方法用一条记录水合当前映射器对象。 find方法返回映射器对象的数组。 E.g:

  • $test1->load('id=1')的效果是将对象$test1映射到数据库行ID为1。
  • $list=$test1->find("name LIKE 'A%'")的效果是返回名称以A
  • 开头的映射器数组