1. 程式人生 > 實用技巧 >Thinkphp6.0/TP6框架中新增函式的解釋及用法

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 app\controller;

use app\validate\User;
use think\exception\ValidateException;

class Index
{
    public function index()
    {
	try {
		$result = validate(User::class)->batch(true)->check([
			'name'  => 'thinkphp',
			'email' => '[email protected]',
		    ]);

		if (true !== $result) {
		    // 驗證失敗 輸出錯誤資訊
		    dump($result);
		}
	} catch (ValidateException $e) {
            // 驗證失敗 輸出錯誤資訊
            dump($e->getError());
        }
    }
}

9、中介軟體註冊方式:
路由新增:

Route::post('getMenuTreeList','Menu/getMenuTreeList')
    ->middleware(app\middleware\Check::class);

控制器新增(注意:此情況 對該類下所有方法適用):

 protected $middleware = [\app\middleware\Check::class];

又此種情況 跟 路由新增一樣(下列情況表示,check中介軟體僅對getMenuTreeList方法生效):

protected $middleware = [
        \app\middleware\Check::class => ['only' => ['getMenuTreeList'] ]
    ];

註冊中介軟體:

php think make:middleware Check