tp6利用以下是无法通报分页的参数的,
$list=Db::name('web_news')->paginate($pagesize);$page=$list->render();
tp5的时候也不能通报参数可以按照下面办法修正,但是tp6弗成
$list=Db::name('web_news')->paginate([$pagesize,query'=>request()->param()]);$page=$list->render();
以下是tp6精确的写法:

$list=Db::name('web_news')->paginate(['list_rows'=>$pagesize,'query'=>request()->param()]);$page=$list->render();
2、tp6中无法利用success、error、redirect方法
在tp6中连续利用$this->error();success,提示方法不存在,这是由于取消了error,success,redirect,我们用的习气了不想换,可以自己写。
图1 页面$this->success效果图
前边讲了上岸,在验证完上岸账号密码要跳转到后台首页IndexController,创建该文件,编辑代码如下:
namespace app\controller;use app\BaseController;use think\facade\View;use think\facade\Db;class IndexController extends CmController //前边代码都一样,
这里可以看到不是extends BaseController,而是我们自己创建的类CmController。
打开以前跳转的模板,可以看到以下代码:
<?php if(isset($message)) {?> <p class="success"><?php echo(strip_tags($msg));?></p><?php }else{?> <p class="error"><?php echo(strip_tags($msg));?></p><?php }?>
$message存在是提示成功的跳转,反之是出错。
下面我们编辑CmController代码:
<?phpnamespace app\controller;use app\BaseController;use think\facade\View;use think\facade\Db;use think\facade\Config;use think\facade\Session;use checkdanger\Webscan;class CmController extends BaseController {//这里又 extends BaseController,//相称于加了cm这个中间类public function __construct(){header("Content-Type:text/html; charset=utf-8");$webscan = new Webscan();if ($webscan->check()) { exit( '系统检测到有攻击行为存在!
');} if(!Session::get('login_admin.user_name')){header("location:".URL("login/index"));exit;}}
可以看到我们把危险检测,是否上岸过期都写在了该文件的布局函数里边。
这样做的好处是:
避免重复声明编码utf-8、避免重复检测危险代码、避免重复检测是否上岸;
在这个页面创建error,success,redirect方法,连续我们以前的习气;
error方法:
public function error($info,$url='',$wait=10){if(!$url){$url='javascript:history.go(-1);';}View::assign('msg',$info);View::assign('url',$url);View::assign('wait',$wait);echo View::fetch("default/dispatch_jump");//这里利用了echo,dispatch_jump便是以前版本的跳转模板;}
url为空的时候实行js跳转回上一页,wait默认等待韶光的倒计时。
success方法:
public function success($info,$url='',$wait=5){ if(!$url){ $url='javascript:history.go(-1);';} View::assign('msg',$info);View::assign('url',$url);View::assign('wait',$wait);View::assign('message',1);echo View::fetch("default/dispatch_jump"); }
由于模板内判断了message用于差异error和success,这里我们随便给message变量一个值:View::assign('message',1);
redirect方法:
public function redirect($url){ header("location:".$url); exit; }
这里利用header跳转。
$this->success('成功排序');即为图1显示效果。
可以看到3个方法末了都是利用的echo
echo View::fetch("default/dispatch_jump");
如果想利用return
return View::fetch("default/dispatch_jump");
$this->success('成功排序');应改为 return $this->success('成功排序');
直策应用exit();也是可以的
exit(View::fetch("default/dispatch_jump"));
通过在CmController写这几个方法,又可以沿用我们以前的习气。