第一次使用laravel不断踩坑,不断添,不断的学习和使用。
在网上找了一些,都是web使用,没找到移动端使用的,我比较懒,就想着拿来用就好了,没办法只能自己去读理解一下:
一、安装使用
composer gregwar/captcha
二、使用
use Gregwar\Captcha\CaptchaBuilder;
/***
* @param Request $request
* @return mixed
* @author lifang
* @info 图片验证码
*/
public function getCaptcha(Request $request)
{
$builder = new CaptchaBuilder();
$builder->build();
$captcha = $builder->inline(); //输出base64格式图片
$code = $builder->getPhrase(); //验证码
//session()->put('phrase',$code);
Cache::put('phrase', $code, 60);
if(config('app.debug')){//调试模式输出正确明文给前端
return json_response(compact('captcha','code'));
}else{
return json_response(compact('captcha'));
}
}
这个是用上的,拿来需要修改一下,注意一下我这个返回用的json_response()这个方法你们换成自己的
三、这里出现的几个错误
1、新的laravel框架可能会存不进去,自己存完验证码需要测试一下方法Cache::get();看一下能不能掉用到,如果不能,可能存在的问题是有新的包加进来以后出来的问题。
解决办法:执行
php artisan route:cache
php artisan config:cache
执行这两个命令
2、然后又报错了,说这个命令 Unable to prepare route [api/user] for serialization. Uses Closure.说路由里面又闭包,不能用,然后我就去看了看
解决办法:
//Route::get('/', function () {
// return view('welcome');
//});
去路由里面把这个东西注释了,再执行ok了,然后去请求我们的方法
3、请求完又报错了,我勒个去,太他烦了,说storage没有权限,但是这个文件夹以前就报错过,我已经设置了0777,看来还是没有完全解决,我又继续查资料,说是新的laravel框架两个文件夹都要改权限。
解决办法:
查看storage权限情况
ls -ld storage/
nginx 属组www
chmod -R 775 storage/
chown -R :www storage/
改了用户权限和用户组 再去请求
行了,nice,开心。我就来记录了一下美好生活。