2、先在控制器中将时间戳分配给模板:
$this->assign('time',$time)
3、在模板里面:
{$time|date="Y-m-d H:i",###}
模板的使用 (重点)a、规则模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl)更换模板文件的后缀名(修改配置文件)'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名b、修改模板文件目录层次'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次c、模板主题'DEFAULT_THEME'=>'your',//设置默认模板主题需要在TPL下面新建一个your文件夹作为模板主题文件夹如何动态修改模板主题?1、在后台准备一个功能,修改config.php文件中的默认模板项2、通过url传递 t=主题 参数可以修改不同的模板'DEFAULT_THEME'=>'your',//设置默认模板主题'TMPL_DETECT_THEME'=>true,//自动侦测模板主题'THEME_LIST'=>'your,my',//支持的模板主题列表2
输出模板内容 (重点)a、display1.display中没有参数$this->display()2.可以带参数$this->display(本模块文件夹下的其他模板文件)$this->display('index2')$this->display(其他文件夹下的模板文件)$this->display('Public:error')//注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块$this->display(其他主题下的 文件夹下的 模板文件)//需要开启主题支持$this->display('my:Index:index')三、模板中的赋值 (重点)四、模板替换 (重点)
3
模版的使用
User模块下的demo方法 ,模块放置的地方,
D:\wamp\www\thinkphp\Home\Lib\Action
ThinkPHP中的视图模型
ThinkPHP中的视图模型
4
模块显示$this->display()
让模版来显示内容
那模版放在哪里?
ThinkPHP中的视图模型
5
创建模版index要和方法public function index(){}相同
class UserAction extends Action
要和tpl下面的User同名,然后就是方法名index和其中的模版名index.html要相同
模版文件下Tpl/[分组文件夹]【模版主题】和模块名同名的文件夹Index/和方法名同名的文件index.html
ThinkPHP中的视图模型
6
模版的后缀名.html或者.tpl
更换模版文件的后缀名
需要修改配置文件
配置文件
ThinkPHP中的视图模型
7
//修改模版的后缀名
'TMPL_TEMPLATE_SUFFIX'=>'.html',
一般情况不要修改,默认为.html
更改模版的目录结构
'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次
c、模板主题'DEFAULT_THEME'=>'your',//设置默认模板主题需要在TPL下面新建一个your文件夹作为模板主题文件夹如何动态修改模板主题?1、在后台准备一个功能,修改config.php文件中的默认模板项2、通过url传递 t=主题 参数可以修改不同的模板'DEFAULT_THEME'=>'your',//设置默认模板主题'TMPL_DETECT_THEME'=>true,//自动侦测模板主题'THEME_LIST'=>'your,my',//支持的模板主题列表
ThinkPHP中的视图模型
ThinkPHP中的视图模型
ThinkPHP中的视图模型
//更改模版主题
//设置默认的主题
//'DEFAULT_THEME'=>'my',
//如果有多个主题
'DEFAULT_THEME'=>'your',
//动态的更改模版
'TMPL_DETECT_THEME'=>'true',
//自动侦测模板主题
'THEME_LIST'=>'your,my',
//支持的模板主题列表
ThinkPHP中的视图模型
输出模版中的内容
1) display中没有参数
$this->display()
2)可以带参数
$this->display(“模块下的其他模版”)
这里的模版名参数不要后缀名
ThinkPHP中的视图模型
ThinkPHP中的视图模型
ThinkPHP中的视图模型
ThinkPHP中的视图模型
ThinkPHP中的视图模型
ThinkPHP中的视图模型
输出模版中的内容小结:
二、输出模板内容 (重点)a、display1.display中没有参数$this->display()2.可以带参数$this->display(本模块文件夹下的其他模板文件)$this->display('index2')$this->display(其他文件夹下的模板文件)$this->display('Public:error')//注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块$this->display(其他主题下的 文件夹下的 模板文件)//需要开启主题支持$this->display('my:Index:index')
在项目中可以用文件夹路径的形式来调用文件
比如说
项目的公共文件Public
ThinkPHP中的视图模型
ThinkPHP中的视图模型
放在项目的Public下
属于整个项目中,如何调用呢?
要用路径来调用
//调用项目中的公共文件不是放在模块下的模版文件中,而是放在项目的公共文件中
//用路径来调用
$this->display('./Public/error.html')
//当前项目中的Public下的error.html页面
ThinkPHP中的视图模型
这里的当前是指主入口文件index.php当前目录下
display()的参数,第一个是模版,第二个是指定模版的编码utf-8,可以不写,模版的输出类型默认是html,可以改成tpl,xml
$this->show()输出模版的内容,模版文件不存在,或者别的文件,无法转成html
可以用这个方式输出内容
$this->show("这里是用show方法来输出内容。")
ThinkPHP中的视图模型
//通常我们会将内容放在一个变量中,有可能这个变量是从数据库中取出的
//$content="这是从数据库中取出的数据"
//fetch方法可以将一个模版文件返回给一个字符串
$content=$this->fetch('Public:error')
$this->show($content)
ThinkPHP中的视图模型
可以读取模版的内容,是一个字符串
//打印出这个字符串
dump($content)
ThinkPHP中的视图模型
//fetch方法可以将一个模版文件返回给一个字符串
$content=$this->fetch('Public:error')
//打印出这个字符串
//dump($content)
//当我们要替换一个字符串很方便
$content=str_replace("h1","h2",$content)
$this->show($content)
ThinkPHP中的视图模型
fetch方法,获得模版中的内容,以字符串的形式返回
//fetch方法可以将一个模版文件返回给一个字符串
$content=$this->fetch('Public:error')
//打印出这个字符串
//dump($content)
//当我们要替换一个字符串很方便
$content=str_replace("h1","h2",$content)
$this->show($content)
4)show()方法,不需要模版文件,可以向页面中输出内容
//fetch方法可以将一个模版文件返回给一个字符串
$content=$this->fetch('Public:error')
//打印出这个字符串
//dump($content)
//当我们要替换一个字符串很方便
$content=str_replace("h1","h2",$content)
$this->show($content)
先说下,关联模型。
如你所说,关联模型和jion类似。
实际上,thinkphp的关联模型,就是简化你的jion *** 作。所以,本质上,关联模型,就是处理表连接关系的。归根结底的,就是让你在用模型 *** 作的时候,简化SQL查询的join *** 作。(是简化 *** 作,而不是改变SQL语句。)
视图模型。
先举个例子。一个用户表,一个文章表。一个用户对应多篇文章。
然后,你现在会经常出现如下需求:取得某人的文章记录,但是呢,只要求显示,用户名,文章名,文章ID,文章日期(其他的,比如,什么用户邮箱啊,用户密码啊,文章类型啊,文章修改日期啊,文章标签啊,你都不需要)
这个时候,你就可以定义一个试图模型,然后在 $viewFields 里面,就可以把你经常使用需要调用的那个几个字段,按照thinkphp的规定,定义进去。
这样,经过定义之后,你每次 *** 作的时候,就像是 *** 作“单表”一样的,是不是就很方便了呢。
其实,这个视图的概念,是一般比较完善点的关系型数据库都支持的,比如mysql,MSSQL,ORACLE等等。可以参考下相关数据库的知识。
至于你的那个东西定义的可参考方式如下。
class ArticleViewModel extends ViewModel {public $viewFields = array(
'Article'=>array('name','title'....其他字段),
'Author'=>array('title'=>'category_name', '_on'=>'article.auid=author.id'),
'Article_class'=>array(字段定义如上,具体规则,下面有介绍, '_on'=>上面已经给你写了一个,这里其实就是写,article,和article_class 的主外键,对应关系。即JOIN ....ON..语句,ON部分的多内容),
'article_type'=>array('field_realename'=>'field_alias'。这里就相当于查询语句SELECT 字段 字段的别名。这样的对应关系。)
)
}
OK.受人之鱼不如授人之渔。上面没有给你详细答案,而是根据你的条件,给了你一个示例,希望你能研究透。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)