多语言展示
当前在线:1060今日阅读:154今日分享:43

composer think-captcha 安装失败

因为项目中需要使用图形验证码,所以想用一下thinkphp中的captcha扩展包。按照文档中的命令安装,结果提示安装失败。Installation failed, reverting ./composer.json to its original content.下面说下这个问题怎么解决。(百度发布不能带本地测试功能的截图,所以这个经验有不完全的地方,也因为审核问题得删除掉!具体解决办法我文字已经描述清楚了。)
工具/原料
1

composer

2

thinkphp

方法/步骤
1

先看下这个运行结果截图。截图中有提示:Problem 1    - topthink/think-captcha v2.0.2 requires topthink/framework 5.1.* -> satisfiable by topthink/framework[5.1.x-dev, v5.1-beta.1, v5.1-rc.1, v5.1-rc.2, v5.1-rc.3, v5.1.0, v5.1.1, v5.1.2, v5.1.3, v5.1.4, v5.1.5, v5.1.6, v5.1.7, v5.1.8, v5.1.9] but these conflict with your requirements or minimum-stability.这里已经指明需要的framework的版本都有哪些还有最低版本要求是5.1。如果是thinkphp5.1以下版本肯定是要报错的。

2

下面就需要把项目的整个thinkphp都换成5.1以上版本。应用项目:m/liu2st/thinkphp5.git核心框架:e.com/liu21st/framework.git后面要做的就是项目迁移过去吧。我试了一下如果应用项目使用的是5.0。 核心框架使用的是5.1就会报错。Invalid argument supplied for foreach()。所以还是都升级才好。这样后期项目也方便部署。

3

我这里建立了一个5.1版本的测试项目。git clone -b 5.1 liu21st/thinkphp5.git captchacd captchagit clone -b 5.1 e.com/liu21st/framework.git thinkphp

4

这个时候使用 composer require topthink/think-captcha 去安装这个扩展包。安装完成后在vendor目录就有他的文件。

创建输出图像验证码的模板

在控制器中加入下面的方法。(项目需要继承Controller)public function captcha(){    return $this->fetch();}创建captcha.html。在Body标签里加入

{:captcha_img()}
。这样输出验证码的案例就做好了。下图有运行结果。

注意事项

composer出现错误会在命令窗口中有提示,注意看一下就能找到解决问题的方向。

推荐信息