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

原文地址:https://www.cnblogs.com/samRoot/p/14208909.html