分类 ThinkPHP 下的文章

app\middleware.php

<?php
// 全局中间件定义文件
return [
    // 跨域请求
    \think\middleware\AllowCrossDomain::class
];

ThinkPHP5时间戳转换方法:

{$admin. created_at |date='Y-m-d H:s:i',###}

ThinkPHP6时间戳转换方法:

{$admin.created_at|date='Y-m-d H:i:s'}

原文是这样子的:

验证某个字段是否和另外一个字段的值一致,例如:

'repassword'=>'require|confirm:password'
支持字段自动匹配验证规则,如passwordpassword_confirm是自动相互验证的,只需要使用

'password'=>'require|confirm'
会自动验证和password_confirm进行字段比较是否一致,反之亦然。

至少对我这样的菜鸟来说很不好理解,至少我没有使用到上面的那个自动相互验证的办法。

//验证规则
    protected $rule = [
        'newPsw' => 'require|length:5,12', //输入的新密码
        'rePsw' => 'require|length:5,12|confirm:newPsw', //需要与newPsw比对的表单对象

    ];

见笑了,留个当记念备忘用。

此方法虽然不是最好的,但可以应付差事,实现功能。

假定以下为控制器Atest.php

...//省略代码
//引入框架自带分页渲染类
use think\paginator\driver\Bootstrap;

class Atest extends BaseController
{
    //报名审核过渡页
    function articleList()
    {
        $pageNo = Request::param('page');
        //客户端传过来的分页
        $pageNumber = $pageNo ? $pageNo : '0';
        if($pageNumber > 0){
            $pageNumber_one = $pageNumber-1;
        } else {
            $pageNumber_one = 0;
        }
        $limit = 10;//每页显示条数
        $offset = $pageNumber_one * $limit;//查询偏移值
        $sql = "SELECT ...复杂的SQL脚本... limit $offset,$limit";
        $list = Db::query($sql);

        //查询的总条数
        $sqlTotal = "SELECT count(*) as count_num ...复杂的SQL脚本...";
        $counts = Db::query($sqlTotal);
        $count = count($counts);//因为获取的总数为数组类型,因此用count计算出总数
        //组合分页数据格式
        $pagernator = Bootstrap::make($list,$limit,$pageNumber,$count,false,['path'=>Bootstrap::getCurrentPath(),'query'=>request()->param()]);
        $page = $pagernator->render();
        // 获取分页显示
        View::assign(['list' => $list, 'page' => $page]);
        return View::fetch();
    }
}

模板调用不变:

{$page|raw}

为什么说这种解决办法不好呢?请看下面大佬的总结:

https://mp.weixin.qq.com/s/czppKCEZTeoRq9pUcyOPag

switch ($searchType) {
            case 'name':
                $res = OrdersModel::hasWhere('personBase',['name'=>$searchText])->paginate(100);
                break;
            case 'phone':
                $res = OrdersModel::hasWhere('personBase',['phone'=>$searchText])->paginate(100);
                break;
            case 'icard':
                $res = OrdersModel::hasWhere('personBase',['icard'=>$searchText])->paginate(100);
                break;
            case 'out_trade_no':
                $res = OrdersModel::with('personBase')->where(['out_trade_no'=>$searchText])->paginate(10);
                break;
            case 'transaction_id':
                $res = OrdersModel::with('personBase')->where(['transaction_id'=>$searchText])->paginate(10);
                break;
        }