thinkphp中assign(name,$arr)的name可以是变量吗?

作者&投稿:裘启 (若有异议请与网页底部的电邮联系)
thinkPHP中$this->assign("arr",$arr);是什么意思啊? 两个arr 有什么区别吗?~

$this->assign("arr",$arr)中第一个参数是在模板中使用的变量名,名字可以任意取,第二个参数是传递给模板的变量。举个例子:
1、在Action中赋值了一个myname模板变量:
$name = 'ThinkPHP';$this->assign('myname',$name);表示把Action中$name变量(其值为'ThinkPHP')赋值给模板变量myname,当然也可以是其他名字。
2、在模板文件中使用myname变量:
在模板文件(即对应的html文件)使用 {$myname} 即表示 字符串:'ThinkPHP'

那样写应该也可以,不过为空时可能会报错,所以需要加上双引号,如果还报错应该是其他部分有问题。
var a = "{$a}";

  要在模板中输出变量,必须在在控制器中把变量传递给模板,提供了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} ]
  输出同样的内容。

//分配变量
$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标签通常是用于输出数组。


不知道怎么搞代码亮。。。




Thinkpad T400 双显卡切换?
hinkpad T400双显卡切换方法:A卡切换独立显卡方法:1、在桌面空白处点击鼠标右击,在弹出的选项中,点击“配置可交换显示卡”2、然后在弹出的AMD可切换显示卡设置中,将需要设置为独立显卡运行的应用程序添加进来,然后选择“高性能”最后点击底部的“保存”即可。N卡切换独立显卡方法:1、在桌面空白处点击...

急求!联想GHINKPAD E430c 摄像头打不开,每次用摄像头时都提示未检测到...
1、首先尝试使用快捷键看能否打开摄像头。操作方法如下:a、先查看设备管理器中有无摄像头设备。(Windows xp、Windows 7系统可右击桌面小电脑图标选择“管理”,打开“设备管理器”;Windows 8以上系统可同时按下Windows键和X键,打开“设备管理器”)b、然后确认电脑已正确安装了电源管理软件和快捷键驱...

the color of the wind风中奇缘歌词的翻译
你 会 看 到 风 中 七 色 的 美 丽 你 的 心 会 画 出 风 中 的 色 彩 等 待 你 牵 我 的 手 风 在 蓝 天 上 飞 向 那 个 梦 你 听 风 在 说 话 说 着 不 朽 的 情 爱 那 全 世 界 最 温 柔 的 表 白 如 果 真 爱 在 你 心 中 永 不 更 改 你 会 ...

松岭区17746642704: thinkphp如何将assign在另一个模板使用 -
汉灵至宝: 在Action中使用assign方法可以给模板变量赋值,在另外一个模板中使用的方法: 1、在Action中赋值了一个name模板变量: $name = 'ThinkPHP'; $this->assign('name',$name); 2、使用内置的模板引擎输出变量,只需要在模版文件使用: {$name} 模板编译后的结果就是

松岭区17746642704: thinkphp 中 this>assign( jumpURL , - URL - /index ); 是什么意思啊 -
汉灵至宝: 要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值.$this->assign('name',$value);// 下面的写法是等效的$this->name = $value;assign方法必须在display和show方法之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量例外),一定程度上保证了变量的安全性

松岭区17746642704: Thinkphp 中如何在模板中的JS代码里使用 控制器中assign的变量? -
汉灵至宝: 那样写应该也可以,不过为空时可能会报错,所以需要加上双引号,如果还报错应该是其他部分有问题.var a = "{$a}";

松岭区17746642704: thinkPHP中“$this - >assign("row",$row);”是什么意思? -
汉灵至宝: $this->assign("arr",$arr)中第一个参数是在模板中使用的变量名,名字可以任意取,第二个参数是传递给模板的变量.举个例子: 1、在Action中赋值了一个myname模板变量: 12$name = 'ThinkPHP';$this->assign('myname',$name); 表示把...

松岭区17746642704: thinkphp里的assign('wish',$wish)什么意思 -
汉灵至宝: 将控制器中的变量发送到模板页面.与$this->wish=$wish意义相同.assign('wish',$wish)后就可以直接在模板页面里使用$wish了({$wish}或者<?php echo $wish;?>)

松岭区17746642704: thinkphp 怎么整合 smarty -
汉灵至宝: 先有的smarty模板引擎、yii框架,后有的ThinkPHP框架,ThinkPHP中指定左右定界符TMPL_L_DELIM = ''就是根据smarty和yii来实现的,通过C层来分配变量assign,在指定模板display来显示,其实这些都已经说明了ThinkPHP本身已经是整合smarty后的框架,原理是都一样的

松岭区17746642704: thinkphp 3.2 assign 跨模板传值 -
汉灵至宝: 我觉得可以换一种思路,通过数据共享,把值缓存起来就可以达到你说需要的效果了,不一定非要死磕assign了

松岭区17746642704: thinkphp中这样写是什么意思?src="{$info.pic|default='/Public/user.png'}" -
汉灵至宝: src="{$info.pic|default='/Public/user.png'}" 意思是你的模板对应的controller控制器assign过来的变量info中的pic值,如果不为空则指向$info.pic的路径,如果为空,默认指向的是/Public/user.png这个路径 请参考手册的模板模块的默认值输出部分,这是规定的一个使用规则 {变量|default="默认值"}

松岭区17746642704: thinkphp中$this - >assign()向框架页面传值的问题 -
汉灵至宝: 你这句$this->assign('username','zhangsan')中username前后的单印号觉得有点问题,编码与'zhangsan'使用的有点不一样.;

松岭区17746642704: Thinkphpk中判断session -
汉灵至宝: 方法很多,灵活运用,例如1.在模板中调用{$Think.session}2.在标签直接编写php代码来判断$_SESSION3.在模板中写,然后在里面直接编写php代码来判断$_SESSION4.在Action中将$_SESSION变量通过assign()方法赋值给模板5.在自定义函数库中,新建一个函数用来返回$_SESSION变量,然后在模板文件中使用{$变量命 | 函数名}来将函数返回的$_SESSION赋给模板中的一个变量 以上五种方法皆可,你也可以想自己的办法.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网