ThinkPHP

thinkPHP5引入endroid/qr-code类库生成指定二维码

泪湿孤枕 提交于 2019-12-19 11:34:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我在项目开发中需要使用到的常见的一些类库,基本都是Packagist / Composer 中国全量镜像上找到,然后使用composer直接安装。 废话不多说开始吧! 首先,打开https://packagist.org/该网址, 在搜索框中输入endroid/qr-code, 点击第一个链接进入, 下滑找到这句话: $ composer require endroid/qr-code 下载到本地,我这里以c盘下载为例: 加载的文件为vendor,下面的子目录如下 我们需要用到的是endroid目录。由于我们是在thinkPHP5项目下使用,所以你在你的TP5根目录下composer该类库,会自动加载到vendor目录下, 我们在项目代码中可以直接通过use关键字引用使用,贴上代码 <?php namespace app\subsite\controller; use Endroid\QrCode\QrCode; class Index extends Base { function _initialize() { parent::_initialize(); } /* * 生成二维码图片 */ public function qr_code() { $link = 'http://'.$_SERVER[

thinkphp6 视图变量输出

人走茶凉 提交于 2019-12-15 14:00:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> thinkphp6 视图变量输出 视图默认把变量输出为字符串类型,有些时候需要保证原来的类型,比如html字符串 raw 参数,禁止转换 {$content.content|raw} 支持多个参数,比如解码php内置的 htmlspecialchar 过滤后的字符串: {$content.content|raw|htmlspecialchars_decode} php 内置的字符串函数: https://www.php.net/manual/zh/ref.strings.php 来源: oschina 链接: https://my.oschina.net/u/3756690/blog/3143202

thinkphp6 输入变量过滤

最后都变了- 提交于 2019-12-15 14:00:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> thinkphp6 输入变量过滤 官方文档地址: https://www.kancloud.cn/manual/thinkphp6_0/1037519#_100 变量过滤 框架默认没有设置任何全局过滤规则,你可以在 app\Request 对象中设置 filter 全局过滤属性: namespace app; class Request extends \think\Request { protected $filter = ['htmlspecialchars']; } 也支持使用 Request 对象进行全局变量的获取过滤,过滤方式包括函数、方法过滤,以及PHP内置的Types of filters,我们可以设置全局变量过滤方法,支持设置多个过滤方法,例如: Request::filter(['strip_tags','htmlspecialchars']), 也可以在获取变量的时候添加过滤方法,例如: Request::get('name','','htmlspecialchars'); // 获取get变量 并用htmlspecialchars函数过滤 Request::param('username','','strip_tags'); // 获取param变量 并用strip_tags函数过滤

php之微信公众号发送模板消息

谁说我不能喝 提交于 2019-12-12 14:20:37
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0)。先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: 申请过程就不说了,提交并且申请通过后,可以在模板库中看到模板消息列表: 想用哪个模板点击进去添加就行了: 添加模板后就存放到“我的模板库”中了,这是我添加的需要用到的一些: 点击查看模板的详情,可以看到模板的id及各项内容参数名,不同的模板消息的内容结构不一样。这些id及字段名在程序中会使用到: 第二步:程序实现模板消息SDK: 同样的,模板消息是使用access token来发送的,所以要获取token。 我把模板消息的类文件放在了extend下面,大致位置如图: 代码截图如下: 类文件这样就可以了,到时候直接引入使用就可以了。 第三步:构建模板消息: 我把需要用到的模板消息 都写成一个个方法,放在公共类文件中了,可以参考一下: 1 //下单成功通知模板 2 /* 3 * openid:微信唯一标识 4 * orderSn:订单号 5 * goods_name:商品名称 6 * goods_num:商品数量 7 * allMoney:总价格 8 */ 9 function orderSuccess($openid

thinkphp6 模型 使用实例

拥有回忆 提交于 2019-12-10 10:12:57
thinkphp6 模型 例子 关联模型 关联输出,分页查询 /** * 定义关联模型方法 * @return \think\model\relation\HasOne */ public function authorInfo(){ // 一对一 return $this->hasOne(User::class,'id','author'); } /** * 列表查找 * @param int $type 类型 * @param int $page 当前页面 * @param int $limit 每页面数量 * @return array * @throws \think\db\exception\DbException */ public function GetListAll(int $type = 1, int $page = 1, int $limit = 100){ // 关联输出 return $this::where('type',$type) ->with('authorInfo') // 载入关联模式方法,方法名就是字段名称 ->visible(['authorInfo'=>['id','nick_name']]) //显示需要的数据 ->field('id,type,title,author,cover,likes,update_time') // 分页查询

thinkphp6 中间件

萝らか妹 提交于 2019-12-09 17:57:20
thinkphp6 中间件 使用中间件,需要注册,基本用法查看官方文档 https://blog.thinkphp.cn/1108963 中间价件只能返回 response 对象 所以,要在中间件中直接返回信息,需要使用 response 对象. 路由中间件 比如路由中间件,权限验证功能。 public function handle($request, \Closure $next) { $t = Request::post('token'); if (!$t){ // 直接返回信息 return response()->data(json_encode(array('RS'=>1003,'Msg'=>'令牌错误')))->code(401); } return $next($request); } 来源: oschina 链接: https://my.oschina.net/u/3756690/blog/3139323

ThinkPHP 连贯操作详解

三世轮回 提交于 2019-12-09 14:17:52
ThinkPHP 连贯操作 连贯操作是 ThinkPHP 极富特色的一大特性,在使用连贯操作进行数据库操作时,就像玩游戏搭积木一样容易:嗯,程序编写就应该如此简洁而容易才对。 连贯操作的一个例子: $Dao = M("User"); // 查询所有用户数据 $allUser = $Dao->select(); // 查询最近注册的 10 个用户并按照注册时间排序 $newUser = $Dao->order('regdate DESC')->limit(10)->select(); 上面查询最近 10 个注册用户的例子中,select、order 和 limit 都是 Model 的内置方法,分别表示数据查询、设置排序和查询记录限制。当把这些及更多的方法组合放在一起的时候从而构建不同的数据库操作(包括 CURD 所有操作)时,这种操作方式就叫连贯操作。 连贯操作主方法 连贯操作主方法是指对数据库的操作方法,例如 select(查询)、find(查询一条记录)、getBy动态方法、add(写入)、save(更新)、delect(删除)等。注意:主方法这一称谓并非官方的称呼,而是本教材为了便于理解而定义的。 一个连贯操作中只允许出现一个主方法,且主方法必须要写在连贯操作的最后。本教程对各主方法分别做了详细介绍: 写入数据方法:add 查询数据方法:select find

ThinkPHP-多语言支持功能使用

為{幸葍}努か 提交于 2019-12-07 15:36:03
1.检查\ThinkPHP\Extend\Behavior目录下是否有CheckLangBehavior.class.php文件,没有的话去下载完整版,并将文件放到此目录下。 2.修改目录下文件Application\[模块/比如Home、Common等等]\Conf\tags.php(没有此文件的话自己添加)添加配置: return array{ 'app_begin' => array('Behavior\CheckLangBehavior'), ); 3.修改Application\[模块]\Conf\config.php文件,添加配置如下: return array( //'配置项'=>'配置值' 'LANG_SWITCH_ON' => true, // 开启语言包功能 'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效 'DEFAULT_LANG' => 'zh-cn', // 默认语言 'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔 'VAR_LANGUAGE' => 'l', // 默认语言切换变量 ); 这里另外补充,一般以上两个(2、3)都是在Common下配置这个,这样就不用每个模块的配置文件都改。 4.在目录Application\[模块]下添加Lang目录

微信主动推送消息给用户

别来无恙 提交于 2019-12-06 20:14:05
文章开始前首先我要感谢下帮助我的 小晓飞 同学 微信主动推送消息给用户 需求和流程 微信公众号配置 配置1 这里的配置,因为我也是第一次接触微信开发具体的配置不太清楚有没有必要 以解决问题为目的而作的配置 主动推送消息微信公众号须是 认证的服务号 配置2 基本配置 配置3 接口权限 配置4 到这里微信公众号配置完成 项目后台管理或者你们的第三方微信管理平台 程序 PHP 待整理 走流程,测试,推送消息 来源: oschina 链接: https://my.oschina.net/u/2519486/blog/655870

Thinkphp3.2.3 No input file specified 的解决方法

白昼怎懂夜的黑 提交于 2019-12-06 18:38:50
因为在Fastcgi模式下,php不支持rewrite的目标网址的PATH_INFO的解析ThinkPHP运行在URL_MODEL=2时,会出现 No input file specified.的情况,这时可以修改网站目录的.htaccess文件: 原代码为: <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> “No input file specified.”,是没有得到有效的文件路径造成的。 修改伪静态规则,如下: <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L] </IfModule> 来源: oschina 链接: https:/