不理解获取Smarty的实例

#1 yorian

看到一些实例中有下面这种的用法:
<{$smarty.const
不知道其用法,有相关说明吗?
我找到:获取Smarty的实例
object getView(void)
class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $smarty_object = $this->getView();
                dump($smarty_object);
$this->display("
mycontroller .html");
        }
}
dump($smarty_object);没有输出任何内容呢?

2012-12-27 11:56:32

#2 jake

$this->getView();是获取smarty对象,前提是必须正确配置smarty,而且控制器的构造函数要启动父类控制器的构造函数。

$smarty.const的用法,可以看看我们导航里面的《Smarty 3中文手册》的Smarty手册
http://www.speedphp.com/smarty/language.variables.smarty.htmllanguage.variables.smarty.const

2012-12-27 12:46:17

#3 yorian

嗯。上面问题可以了,不过还有疑问:
控制器中:
$smarty_object = $this->getView();
$this->display("mycontroller .html");
为什么不用$this->smarty=$smarty_object;
模板中就可以使用smarty实例?
比如以下可以用:
<{$smarty.template}>

是不是本身
$smarty_object = $this->getView();
$this->smarty=$smarty_object;
dump($this->smarty); //这里也打印不出任何东西。
这样写有问题呢?

2012-12-28 14:51:48

#4 jake

{:soso_e127:} 没看手册?

你的想法是对的,但是模板中 {$smarty} 是smarty自己的保留变量,在我提供的手册链接里面有讲到:

http://www.speedphp.com/smarty/language.variables.smarty.htmllanguage.variables.smarty.const

模板中使用smarty对象的方法,好像是$this,不过smarty不建议在模板中直接使用smarty对象,而是通过它提供的其他接口实现smarty的配置。

如果想了解更多smarty的功能,建议稍微花点时间看看smarty手册。

2012-12-28 17:17:48

#5 yorian

http://www.speedphp.com/smarty/l ... iables.smarty.const这个之前看过的。
意思是在模板中实际上是可以直接使用smarty对象,和$smarty_object = $this->getView();这个没有关系是吧?

$smarty_object = $this->getView();这个只是在控制器中才用到的是不是?
只是不明白
$smarty_object = $this->getView();
$this->sss=$smarty_object;  //这里我不用smarty作为变量名称
dump($this->sss); //这里打印不出任何东西,不知为什么?

2012-12-28 17:27:45

#6 jake

yorian 发表于 2012-12-28 17:27
http://www.speedphp.com/smarty/l ... iables.smarty.const这个之前看过的。
意思是在模板中实际上是可以 ...
不出现内容只能说是你的代码有问题,而需要进行检查。

我这里做了一个简单的测试程序,getView是正确输出smarty对象的:guestbook2012年12月28日.7z

效果如下:
QQ拼音截图未命名.jpg



2012-12-28 18:04:35

#7 yorian

好的,谢谢老大!我再调试下。

2012-12-28 18:10:44