TinkPHP框架学习-02控制器基本操作
Posted 半封
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TinkPHP框架学习-02控制器基本操作相关的知识,希望对你有一定的参考价值。
1-----创建控制器
2-----访问视图页面
3-----注册变量到视图页面
4-----获取表单数据
一 在Home模块下创建控制器
举例: 目录tp/Application/Home/Controller下创建TestController.class.php
访问该控制器 localhost/i/tp/Home/Test/操作方法
<?php namespace Home\\Controller; use Think\\Controller; class TestController extends Controller { public function test(){ echo "hello!"; } //访问该方法hello
//http://localhost/i/tp/index.php/Home/Test/test }
博客出自"万年",地址:http://www.cnblogs.com/wannian/p/8998424.html
二 访问方法显示视图页面
--在Home模块下的View文件夹中
--新建文件夹与控制器名一样,在此文件夹下建立视图页面
例如:
--如果Home/Controller文件夹下有TestController.class.php控制器,并且该控制器有ceshi方法,既Test控制器下TestController类里的ceshi()方法
--ceshi方法中有 $this->show(); 访问该控制器对应的视图文件夹下该方法对应的视图页面
--那么Home/View文件夹下创建Test文件夹,并创建视图页面ceshi.html
--访问该页面的方法为: localhost/i/tp/index.php/Home/Test/ceshi Home模块下Test( TestController.class,php )控制器的TestController类下的ceshi()方法
<?php namespace Home\\Controller; use Think\\Controller; class TestController extends Controller { public function ceshi(){ $this->show(); } }
三 注册变量到视图页面
①-- 在TP框架中的方法 :
-- 控制器的方法里注册变量 $this->assign(" 变量名称 "," 变量的值 ");
如: $this->assign(\'uname\',\'张三\');
-- 视图页面访问的方法 {$变量名称} 大括号里面写$符号与变量名称,不能有空格换行等
如: {$uname}
②-- 如果注册的变量是数组, 获取方法: {$arr[\'0\']} 或 {$arr[\'id\']}
③--循环输出
--<foreach>标签,TP特有的循环输出
--name的值是变量名称( 与方法中的变量名保持一致 ),item的值是获取到的数组的值( 自定义命名 )
--注册一个数组
public function test(){ $arr=array( array("code"=>"n001","name"=>"汉族"), array("code"=>"n002","name"=>"天族") ); $this->assign("nation",$arr); $this->show(); }
-- 前端获取
<select> <foreach name="nation" item="v"> <option value=\'{$v.code}\'>{$v.name}</option> </foreach> </select>
④--if判断
--<if>标签与else标签,TP特有的前端判断
--<if>标签中condition属性的值是判断条件,
--判断条件中变量名称需有$符前缀, 例如一个注册变量名称是id,值是0, 那么判断id是应 condition=" $id==0 "
例如在test方法中注册变量 $this->assign("dc",0);
前端页面判断并输出,因为dc不等于1所以页面显示李四
<if condition="$dc==1"> <b>张三</b> <else /> <i>李四</i> </if>
⑤-- <literal>标签为照原样显示,<if>标签<foreach>标签写在该标签内不在执行判断与循环
四 获取表单数据
①-- 通过get_defined_constants(true); 方法获取方法的路径,返回一个二维关联数组
--路径在\'user\'中 因此 var_dump(get_defined_constants(true)[\'user\']);
-- __ROOT__ TP框架的根路径
-- __SELF__ 自身方法的路径
-- __APP__ 入口目录
-- __MODULE__ 当前模块路径
-- __CONTROLLER__ 到控制器的目录
-- __ACTION__ 到操作方法的目录
②-- 前端创建视图页面sub.html 并写入form表单,提交地址为到此页面的操作方法目录__ACTION__
<form action="__ACTION__" method="post"> <input type="text" name="uid"> <input type="password" name="pwd"> <input type="submit" value="登录"> </form>
③-- 在Test控制器中些sub方法获取数据
public function sub(){ if(empty($_POST)){ $this->show(); //如果POST是空的继续显示提交页面 }else{ echo $_POST[\'uid\']; //如果有POST则对其操作,或输出或存入数据库等等 } var_dump(get_defined_constants(true)[\'user\']); }
以上是关于TinkPHP框架学习-02控制器基本操作的主要内容,如果未能解决你的问题,请参考以下文章