thinkphp中assign(name,$arr)的name可以是变量吗?
如题name可以是变量吗?如果不能是变量的话我想在循环中得到数组并想发送到模板的是怎么操作????...
如题name可以是变量吗?如果不能是变量的话 我想在循环中得到数组并想发送到模板的是怎么操作????
展开
2个回答
展开全部
要在模板中输出变量,必须在在控制器中把变量传递给模板,提供了assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。
// 下面的写法是等效的:
$this->name = $value;
assign方法必须在display和show方法之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量可以通过特殊的标签输出,可以无需赋值模板变量),一定程度上保证了变量的安全性。
赋值后,就可以在模板文件中输出变量了,如果使用的是内置模板的话,就可以这样输出:
{$name}
如果要同时输出多个模板变量,可以使用下面的方式:
$array['name'] = ‘thinkphp’;
$array['email'] = ‘liu21st@gmail.com’;
$array['phone'] = ’12335678′;
$this->assign($array);
这样,就可以在模板文件中同时输出name、email和phone三个变量。
模板变量的输出根据不同的模板引擎有不同的方法,如果使用的是PHP本身作为模板引擎的话 ,就可以直接在模板文件里面输出了:
如果采用内置的模板引擎,可以使用:
{$name} [ {$email} {$phone} ]
输出同样的内容。
// 下面的写法是等效的:
$this->name = $value;
assign方法必须在display和show方法之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量可以通过特殊的标签输出,可以无需赋值模板变量),一定程度上保证了变量的安全性。
赋值后,就可以在模板文件中输出变量了,如果使用的是内置模板的话,就可以这样输出:
{$name}
如果要同时输出多个模板变量,可以使用下面的方式:
$array['name'] = ‘thinkphp’;
$array['email'] = ‘liu21st@gmail.com’;
$array['phone'] = ’12335678′;
$this->assign($array);
这样,就可以在模板文件中同时输出name、email和phone三个变量。
模板变量的输出根据不同的模板引擎有不同的方法,如果使用的是PHP本身作为模板引擎的话 ,就可以直接在模板文件里面输出了:
如果采用内置的模板引擎,可以使用:
{$name} [ {$email} {$phone} ]
输出同样的内容。
展开全部
//分配变量
$res=M('user')->select();
$this->assign(res,$res);
$this->display();
/*也可以$this->assign(res,M('user')->select())->display(); 貌似是3.1.3的新功能,可以直接assign
tpl中
前台遍历 */
<foreach name='res' item ='v'>
id{$v.id}
username{$v.username}
</foreach>
/*前台遍历的res 不加$,只是分配过来的标识符。
实际上foreach会变成 */
<?php
foreach ($res as $key->$v)
================================以下是3.1.2手册====================
foreach标签也是用于循环输出
foreach标签(循环输出数据)
闭合
非闭合标签
属性
name(必须):要输出的数据模板变量item(必须):循环单元变量key(可选):循环的key变量,默认值为key
示例:
<foreach name="list" item="vo">
{$vo.id}
{$vo.name}
</foreach>
Foreach标签相对比volist标签简洁,没有volist标签那么多的功能。优势是可以对对象进行遍历输出,而volist标签通常是用于输出数组。
不知道怎么搞代码亮。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询