在tp5框架中$this->request->get('id', 100);是啥功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在tp5框架中$this->request->get('id', 100);是啥功能?相关的知识,希望对你有一定的参考价值。
$this->request->get('id', 100);这是否是将id值100放到请求信息中去,但是放进去后怎么获取到?我设置好以后,通过has判断是false,为什么得不到id值呢?
$this->request->get('id', 100) 的意思获取id的值,当没有提交id参数时用默认值替代,也就是说可以获取到100,有id参数时无论是否有值,均以请求为准。
$this->request->has('id', 'get') 是判断否有id参数,当前get请求时有id参数,无论是否有值均返回true,当没有id参数时返回false
不明白时建议多看看框架源码,这样对你更有帮助,比在网上提问更高效。
参考技术A 你这段代码就是获取的,放到请求信息是在请求前端的时候用post或者get方式放入的TP框架部分---空控制器
<?php
namespace Admin\\Controller;
use Think\\Controller;
class DengLuController extends Controller
{
public function test()
{
//echo "这是测试的"
$this->assign("a","world");
$this->show();
}
}
//这里面只有test方法,如果访问空的方法时,例如在浏览器输入localhost/thinkphp/index.php/Admin/DengLu/denglu时,页面中没有denglu方法。访问没有的方法会出现下面页面。
出来的页面中提示了“非法操作:denglu”,下面还提示了错误位置以及其它一些信息。但是把网站放到服务器上以后,如果出现这种提示的话会有下面2个缺点:
(1)这种提示信息太专业,用户在看到这种提示信息时会看不明白这种错误出现的原因;
(2)出现这种提示信息不安全,如果访客比较专业的话看到这些提示信息后就可以获取到很多信息,就知道是用thinkphp框架做的网站,看到错误位置以后网站的目录结构也能获取的到;
解决问题的方法如下:
<?php
namespace Admin\\Controller;
use Think\\Controller;
class DengLuController extends Controller
{
public function test()
{
//echo "这是测试的"
$this->assign("a","world");
$this->show();
}
public function _empty()//加一个魔术方法,在有访问不存在的方法时执行,这里只是暂时的写这么一句话,访问没有的方法时会弹出“您输入的地址不对”.真正的写时需要加载一个页面进去,显示出想让访客看到的提示信息。
{
echo "您输入的地址不对";
}
}
上面是针对空方法的处理,如果出现空控制器,将出现下列错误,错误的缺点和空方法的一样。解决空控制器的方法和空方法一样,也是写一个控制器方法,当遇到空控制器时就执行这个方法。
新建一个控制器,命名如下:
控制器的内容如下:
<?php
namespace Admin\\Controller;
use Think\\Controller;
class EmptyController extends Controller
{
public function _empty()//遇到访问空的控制器时输出这句话
{
echo "您访问的控制器不存在";
}
}
以上是关于在tp5框架中$this->request->get('id', 100);是啥功能?的主要内容,如果未能解决你的问题,请参考以下文章