最近接觸到thinkphp6的RC3版本,驗證碼都搞了我好長一段時間。
1、關於這個版本驗證碼的配置,官方文檔中詳細說明了,如果使用擴展內置的方法進行驗證碼顯示,直接在應用的config
目錄下面的captcha.php
文件(沒有則首先創建)中進行設置即可,以下設置方式僅限於獨立調用Captcha類的時候使用。所以我在config下自己創建了一個配置文件,需要的配置可參照文檔自行配置:
配置完成後,在頁面輸出代碼如下:
這裏需要說明一下,有時候可能不能出現驗證碼圖片,此時請在谷歌調試模式下查看驗證碼圖片的生成路徑,也可以將此路徑粘貼於瀏覽器中進行訪問,可以查看哪一步出現錯誤,我這裏因爲路徑的問題,一開始並沒有顯示出來,於是我自己手動修改了源文件 think-captcha/helper.php中的captcha_img方法,下面圈出來的地方即爲修改的地方:
2、關於驗證,因爲tp6的這個版本默認是不開啓session的,所以需要我們自己開啓,不然驗證的時候是取不到session的。這裏說明一下,如果是部分文件需要session,那麼就在需要使用的控制器中單獨引入(如下),這裏我所有文件都需要引入,打開app/middleware.php文件,將\think\middleware\SessionInit::class 註釋去掉就可以了
use think\facade\Session;
use think\middleware\SessionInit;