php基础控制器类_ThinkPHP基础-----第六章(控制器相关)

控制器:

一、新建控制器:application/index/controller->User.php

1、新建控制器文件首字母必须大写

2、模板:

namespace app\index\controller;//声明命名空间

//声明控制器

class User{

public function index(){

$data=Url::build('Index/index/index');

echo $data;

}

}

?>

访问:http://www.tp.com/index.php/Index/user/index

3、写法:

必须声明命名空间:

声明控制器名字,必须与文件名相同

命名空间必须和文件对应

二、控制器加载页面

1、系统View类

控制器:

namespace app\index\controller;//声明命名空间

//声明控制器

class Blog{

//index 方法

public function index(){

return view();

}

public function aaa(){

return view();

}

}

?>

视图:

在application/index/view/

新建blog文件夹/

(如果调用index控制器)新建index.html文档;

(如果调用aaa控制器)新建aaa.html文档;

2、系统Controller类

use think\Controller(写在控制器最上面)

class User extends Controlle

{

return $this->fetch('index')

}

3、系统方法

//实例化系统view类

$view=new \think\View;

return $view->fetch('index');

三、渲染输出:

默认情况下,控制器的输出全部采用return的方式:

设置默认输出格式:config.php

// 默认输出类型

'default_return_type' => 'html'

// 默认AJAX 数据返回格式,可选json xml ...

'default_ajax_return' => 'json'

输出格式:

1、json:

设置:'default_return_type' => 'json'

写法:$data= ['name'=>'thinkphp','status'=>1];

return json_encode($data) //json转字符串

1、字符串:

写法:return '这是一个字符串'

四、控制器初始化:

1、初始化方法:

//初始化方法

public function _initialize()

{

echo '这是初始化方法';

}

控制器方法:

public function hello()

{

return 'hello';

}

调用hello输出的时候,会先加载初始化的_initialize

的内容,再加载hello的内容

2、使用初始化方法,必须继承系统控制器:

namespace app\index\controller;

use think\Controller;

class Index extends Controller

{

}

只要调用控制器下的任意方法,都会先调用初始化方法

3、控制器初始化的用法:

提取控制器下的公共的设置

例如:登陆权限的控制

五、前置操作:

六、页面跳转:

基于系统类:

引入系统控制器

use think\Controller

HTML:action="{:url('check')}"

当前控制器下的check方法

控制器接受:$_POST('name')

跳转方式:

成功跳转:

$this->success(提示信息,跳转地址,返回数据,跳转等待时间,header信息)

$this->success('跳转成功',url('index/index'))

失败跳转: url默认返回上一个页面

$this->error('登陆失败')

修改成功和失败的模板页面:

// 默认跳转页面对应的模板文件

thinkphp/tpl/dispathch_jump.tpl;

或者:

指定成功与失败的页面

先在配置文件中修改成功与失败的文件

// 默认跳转页面对应的模板文件

'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', 改为secces.tpl

'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', 改为rerror.tpl

在thinkphp/tpl/新建 secces.tpl和reeor.tpl

七、重定向:

\think\library\traits\controller\jump.php;

使用:

redirect('跳转地址','其他参数','code','隐士参数');

public function cdx(){

$this->redirect('index/index');

}

空操作:

主要解决一些用户恶意输入的的操作

public function _empty(){

$this->redirect('index/index');

}

全网空操作重定向:

新建Error.php控制器

namespace app\indexx\controller

use think\Controller

class Error extende Controller{

public function index(){

$this->redirect('index/index');

}

public function _empty(){

$this->redirect('index/index');

}

}

网站上线,每一个控制器都必须写空操作

无论前台、后台 都需要写一个空 控制器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值