手册 >> 数据模型 >> 关联结果在Smarty模板中显示

关联结果在Smarty模板中显示

SpeedPHP框架的spLinker表间关联,获取的数据在模板中可以通过嵌套循环的方式来显示。

我们以前面一对多的关联介绍的例子,讲解如何在模板中显示关联的结果。

一对多关联例子 http://speedphp.com/splinker-hasmany.html

在这文章中,返回的一对多关联数据如下:

Array
(
    [0] => Array
        (
            [user_id] => 12
            [user_name] => 灰太狼
            [guestbook] =>
        )
    [1] => Array
        (
            [user_id] => 14
            [user_name] => 小羊羊
            [guestbook] =>
        )
    [2] => Array
        (
            [user_id] => 16
            [user_name] => 羊村长
            [guestbook] => Array
                (
                    [0] => Array
                        (
                            [gb_id] => 55
                            [contents] => 大家好我是村长
                            [user_id] => 16
                        )
                    [1] => Array
                        (
                            [gb_id] => 56
                            [contents] => 下面我来说两句
                            [user_id] => 16
                        )
                    [2] => Array
                        (
                            [gb_id] => 57
                            [contents] => 以下省略一万五千字
                            [user_id] => 16
                        )
                )
        )
)

上面是在控制器中dump出来的效果。那么在模板中该如何做呢?

<{foreach from=$results item=dc}>
<p>用户:<{$dc.user_name}><br />
<{if $dc.guestbook}>
留言:<br />
<{foreach from=$dc.guestbook item=thegb}>
<{$thegb.contents}><br />
<{/foreach}>
<{else}>
他暂无留言
<{/if}>
</p>
<{/foreach}>

从上面的模板代码我们看到,在判断$dc.guestbook存在数据后,就将$dc.guestbook进行循环输出,循环的过程和前面的循环是一样的。