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' => 'thinkphp@qq.com',
		    ]);

		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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM