-
把view控制器的各方法的模版的公共部分提取出来放在view的common文件夹下,然后在模板原位置通过{include file=“”}进行引用
查看全部 -
条件判断标签:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <link rel="stylesheet" type="text/css" href="__CSS__/style.css"> </head> <body> {switch name="Think.get.level"} {case value="1"}<p>1</p>{/case} {case value="2"}<p>2</p>{/case} {case value="3"}<p>3</p>{/case} {case value="4|5"}<p>4</p>{/case} {default /}<p>0</p> {/switch} {range name="Think.get.level" value="1,2,3" type="in"}<!--in or notin or between(此时value只允许两个值)--> <p>当前level是value中的一个</p> {else} <p>当前level不是value中的一个</p> {/range} <!--下面的表达方法与上面的一致--> <!--{in name="Think.get.level" value="1,2,3"} {else} {/in}--> {define name="APP_PATH"}<!--判断常量是否被定义--> {else} {/define} {if condition="() AND/OR ()" } {else} {/if} </body> </html>
查看全部 -
thinkphp模板中的比较标签:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <link rel="stylesheet" type="text/css" href="__CSS__/style.css"> </head> <body> <!--{eq}标签(与{equal}标签相同)--> {eq name="$b" value="$b"}<!--$a与$b均可为具体数值--> <p>相等</p> {else} <p>不相等</p> {/eq} <!--{neq}标签(与{notequal}标签相同),与{eq}效果相反,如不同则输出前面的值,相同则输出后面的--> <!--{gt}标签,判断是否大于,用法与前面相同--> <!--{egt}标签,判断是否大于或等于--> <!--{elt}标签,判断是否小于或等于--> <!--{lt}标签,判断是否小于,用法与前面相同--> </body> </html>
查看全部 -
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <link rel="stylesheet" type="text/css" href="__CSS__/style.css"> </head> <body> <!--violist标签--> {volist name="list" id="data" offset="0" length="3" mod="2" key="s"}<!--//mod当前循环次数与mod值取余并赋值给$mod,key:循环次数变量,默认值为i,offset:从*下标开始,length:循环长度--> <h1>{$mod}:{$s}:{$data.name}</h1> {/volist} <!--foreach标签--> <!--与下面这种表达方式相同 {foreach name='list' item="vo"}--> {foreach $list as $vo} <h3>{$vo.name} : {$vo.email}</h3> {/foreach} <!--for循环--> {for start="1" end="10" step="2" name="i"} <p>{$i}</p> {/for} </body> </html>
查看全部 -
在view模版中使用html注释(<!---->)用户能够查看到,而使用php注释({/* */})则看不到!
查看全部 -
{literal}这中间的内容不会被编译{/literal}
查看全部 -
php函数在view中的使用方式:(###占位符)
查看全部 -
几种赋值方式代码:
查看全部 -
系统默认提供了这五个模版变量,可自行设置更改 在配置文件中 返回数组 'view_replace_str' => [ ]
系统定义的也可自行重新定义
查看全部 -
四种向页面赋值方式
1.use think\Controller
this->fetch('index',[key=>value])
2.assign(key,value)
3.this->view->name(key,value)
4.use think\View
View::share(key,value) 同时可用
查看全部 -
fetch(),
第一个参数:view视图文件;
第二个参数:给变量赋值(数组);
第三个参数:替换原有文本;
查看全部 -
还可以通过调用Controller控制器的fetch方法 调用指定的view文件调用前需要加载use think\Controller 命名空间,并在指定的应用控制器中extends Controller类$this-> fetch()各参数同view()助手函数相同,区别是fetch()方法也可使用$this -> assign()方法传递变量的视图层(此方法需继承Controller类才可调用)即tp3.x版本相同,view()方法不能调用此方法与tp3.x版本不同的是,$this->display()是直接在控制器中输出要显示的字符串,原3.x版本表示的是调用视图层,也可使用$this -> assign()方法,webserver项目中不建议使用$this->display()方法,这会导致视图层不可用 <?php namespace app\index\controller; use think\Controller; class Index extends Controller{ public function index(){ $this->assign('user','imooc');// return $this->display('{$user},{$email}',[ 'email'=>'12345679@qq.com']); } }
查看全部 -
<?php namespace app\index\controller; use think\Controller; class Index extends Controller{ public function index(){ return $this->fetch('index',[ 'email' => 'abcd@qq.com' ]//与view()类似 ); } }
查看全部 -
<?php namespace app\index\controller; class Index{ public function index(){ //return view(); #默认找app/index/view/index/index.html //return view('upload'); #默认找app/index/view/index/upload.html // return view('**/upload'); #默认找app/index/view/index/**(上级文件目录)/upload.html //return view('./upload.html'); #默认找入口文件同级目录下的upload.html注意必须加.html后缀! return view('index',[ 'email' => 'abc@qq.com',//如在对应html文件中添加<h1>{$email}</h1>(即数组的key,注意表示方式)则会输出abc@qq.com 'adress' => 'hahaha' ],[ 'STATIC' => '当前是STATIC的替换内容'//如在对应html文件中添加<h1>STATIC</h1>(即数组的key,注意表示方式)则会输出''中的文字 ] ); } }
查看全部 -
可以在conf文件中创建对应模块的配置文件进行配置,也可以在方法内传递参数配置。但是实际开发中会在入口文件或者构造方法来统一的修改访问类型
<?php return [ 'default_return_type' =>'xml' ];
特殊封装,不需要在每个方法里都传递这样的参数,可以通过入口/构造方法来统一修改返回类型
响应对象Response
1.针对某一个模块返回其他格式类型,那么需要给在conf文件中创建对应模块的配置文件config.php中配置default_return_type
2.针对某一个操作返回特殊的类型,那么可以通过动态配置实现
在TP5中不允许在控制器和方法里die(),因为响应有可能发生问题
一般在控制器里面直接return 数据,默认格式为html,默认会调用response对象出输出数据,如果需要对数据格式进行修改,第一种在config.php中修改,这个设置全局的,如果想对某个控制器的数据进行修改,一般在控制器里面动态设置返回格式
<?php namespace app\api\controller; use think\Config; class Index { public function getUserInfo($type='json') { if(!in_array($type,['json','jsonp','xml'])) { $type = 'json'; } Config::set('default_return_type',$type);//动态配置,这样就不用修改配置文件,可以通过同一个方法返回不同的响应对象 $data = [ 'code'=>200, 'result'=>[ 'username'=>'rui', 'email'=>'123@qq.com', 'gender'=>'female' ] ]; return $data; //html返回的是字符串,当前返回的是数组,无法解析 } }
<?php namespace app\index\controller; use think\Request; use think\Config; class Index { public function index(Request $request) { $res = [ 'code'=> 200, 'result'=>[ 'list' =>[1,2,3,4,5,6] ] ]; Config::set('default_return_type','xml'); return $res; //dump($res); } }
查看全部
举报