重定向:用各种方法将一个网络请求重新转到到其他位置
下面是重定向redirect()方法参数的说明
/**
* URL 重定向
* @access protected
* @param string $url 跳转的 URL 表达式
* @param array|int $params 其它 URL 参数
* @param int $code http code
* @param array $with 隐式传参
* @return void
* @throws HttpResponseException
*/
protected function redirect($url, $params = [], $code = 302, $with = [])
{}
举个例子
//重定向
public function cdx(){
//不携带参数
$this->redirect('index/index',['name'=>'aaa','pwd'=>'213']);
//我访问http://www.yd.com/login/cdx点击完自动会跳转到http://www.yd.com/index/index.html
//携带参数
$this->redirect('index/index',['name'=>'aaa','pwd'=>'213']);
//我访问http://www.yd.com/login/cdx点击完自动会跳转到首页并携带参数http://www.yd.com/index/index/name/aaa/pwd/213.html
}
空制造器和空方法
空方法 _empty()
解决的问题:解决用户恶意在地址栏输入,或者找不到控制器里面的方法,自动走_empty()方法,比如一些报4.4的错误
空控制器
解决的问题:解决用户在地址栏输入不存在的控制器,会自动调用空控制器,也可以修改,配置,写我们自己的空控制器,系统默认的空控制器为Error
// 默认的空控制器名
'empty_controller' => 'Error',
//创建一个空控制器
namespace app\index\controller;
use think\Controller;
class Error extends Controller
{
public function index(){
echo '空控制器';
//$this->redirect('index/index');
}
}
//我们在浏览器任意输入控制器,如果不存在就会走Error控制器的index()方法
注意:
1. 网站上线每一个控制器必须写一个空操作
2. 每一个网站必须有一个空控制器
资源控制器 第12节空操作后面
1. 用命令行创建控制器
2. 一般配合资源路由写的