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/8998141.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']);
- }
来源: http://www.bubuko.com/infodetail-2590218.html