• Thinkphp6.0/TP6框架中新增函数的解释及用法


    1、dd():打印并截断。halt()同效果。dump()

    2、使用Arr::collapse($array),这种方法可以将Collection数据集转化为数组。类似于在链式写法中的toArray

    3、config()函数:打印后是全部配置函数,将根目录下的config文件全部收集起来了

    4、hidden()函数可以对某个字段隐藏输出:

     $Db->hidden(['name']);
    

    5、模型中判断数据集:用isEmpty(),不能用空。

    if($users->isEmpty()){
        echo '数据集为空';
    }
    

    6、添加数据后如果需要返回新增数据的自增主键,可以使用insertGetId方法新增数据并返回主键值:

    $userId = Db::name('user')->insertGetId($data);
    

    7、 // edit 验证场景定义

    public function sceneEdit()
    {
    	return $this->only(['name','age'])
        	->append('name', 'min:5')
            ->remove('age', 'between')
            ->append('age', 'require|max:100');
    }    
    

    主要方法说明如下:

    方法名 描述
    only 场景需要验证的字段
    remove 移除场景中的字段的部分验证规则
    append 给场景中的字段需要追加验证规则
    如果对同一个字段进行多次规则补充(包括移除和追加),必须使用下面的方式:

    remove('field', ['rule1','rule2'])
    // 或者
    remove('field', 'rule1|rule2')
    

    8、批量验证:batch(true)
    默认情况下,一旦有某个数据的验证规则不符合,就会停止后续数据及规则的验证,如果希望批量进行验证,可以设置:

    <?php
    namespace appcontroller;
    
    use appvalidateUser;
    use thinkexceptionValidateException;
    
    class Index
    {
        public function index()
        {
    	try {
    		$result = validate(User::class)->batch(true)->check([
    			'name'  => 'thinkphp',
    			'email' => 'thinkphp@qq.com',
    		    ]);
    
    		if (true !== $result) {
    		    // 验证失败 输出错误信息
    		    dump($result);
    		}
    	} catch (ValidateException $e) {
                // 验证失败 输出错误信息
                dump($e->getError());
            }
        }
    }
    

    9、中间件注册方式:
    路由添加:

    Route::post('getMenuTreeList','Menu/getMenuTreeList')
        ->middleware(appmiddlewareCheck::class);
    

    控制器添加(注意:此情况 对该类下所有方法适用):

     protected $middleware = [appmiddlewareCheck::class];
    

    又此种情况 跟 路由添加一样(下列情况表示,check中间件仅对getMenuTreeList方法生效):

    protected $middleware = [
            appmiddlewareCheck::class => ['only' => ['getMenuTreeList'] ]
        ];
    

    注册中间件:

    php think make:middleware Check
    
    
  • 相关阅读:
    操作系统基本原理
    String.StartsWith 方法
    桥接模式
    there is no default constructor available in ... | interface extends interface
    JAVA,获取手机屏幕大小
    JAVA,读写properties文件
    JAVA,执行cmd命令控制台输出内容乱码问题解决
    JAVA自动化,使用UIAutomator2加快Appium运行速度
    JAVA自动化,真机打开APP,弹出权限弹窗问题解决
    揭秘TDSQL-A分布式执行框架:解放OLAP关联分析查询性能瓶颈
  • 原文地址:https://www.cnblogs.com/samRoot/p/14208909.html
Copyright © 2020-2023  润新知