ThinkPHP控制器

建一个控制器

在项目目录下(Test)的Home文件夹内的Controller文件夹中  命名规则 MainController.class.php     控制器名称+Controller

<?php
namespace HomeController; 命名空间
use ThinkController; 找到Controller父类
class MainController extends Controller                Main为控制器名称
{                                                                     类中写操作方法
function XianShi()
{
$this->assign("test","hello");                              调用方法,可以注册变量,然后在模板页面调用{$test}
$this->display();
}
}

在View文件夹中新建文件夹Main(控制器名)在Main中建 XianShi.html (操作方法名)   MVC的约定

可以通过conf/config.php来更改配置如模板引擎开始和结束的标记

前置和后置操作

function _before_XianShi()
{
echo "前置操作";
}
function XianShi()
{
$this->assign("test","hello");
$this->display();
}
function _after_XianShi()
{
echo "后置操作";
}

function XianShi($name,$sex)需要传值的情况   在网页地址栏的最后加上/name/lisi/sex/男   传值方式与get方式类似
{

echo $_GET["sex"];              也可以用get方式接收
$this->assign("test","hello");
$this->assign("ceshi",$name);
echo $sex;
$this->display();
}

传值两种方式 1.在方法里写参数 2.使用get方法(方法中可以不写参数,直接在地址栏写,传,然后接收)

使用post传值也可以

URL生成  echo U("XianShi"); 当前控制器下()内直接写操作方法名 

如果要生成不同控制器里的操作方法的地址 写成(控制器/操作方法)echo U("Index/index");

不同模块下 前边再加上模块名 U("Admin/Index/index");

获取系统常量信息:

function ChangLiang()
{
var_dump(get_defined_constants(true));
}

双下划线常用的self module Controller action 直接使用

登录  有显示页面并且有提交的情况

function DengLu()
{
//实现两个逻辑,显示页面,执行登录
if(empty($_POST))
{
$this->display();
}
else
{
echo "登录操作";
}
}

模板页面  <form action="__ACTION__/" method="post">

原文地址:https://www.cnblogs.com/hamilton/p/5716514.html