ThinkPHP3.2和Laravel自定义辅助函数的使用
在我们的日常项目开发过程中,常常会使用到辅助函数,例如:商品模块中有很多属性(是否上架、热销、推荐、新品、置顶等),以正常逻辑,我们会首先想到的就是给每个属性绑定事件,js
获取需要的值,通过发送Ajax
请求到PHP
端,PHP
端接收到值后,执行数据库的更新操作即可。如果是这样的话,我们的js
代码量就会增加很多,整个模块在代码结构优化上就不是很好了,所以我们要以最简洁的代码来实现上述功能。
接下来我们就分析一下如何在ThinkPHP3.2
和Laravel
两种框架中定义和使用辅助函数。
ThinkPHP3.2框架(以下简称TP)
-
首先在大Common文件夹中新建一个文件,名字叫:
function.php
,该文件中定义一个函数,名字随意,合理就行,直接上代码,例如:
解析:定义函数时,传入两个参数,一个代表模型,一个代表属性,函数里面判断传入的模型是否存在并且属性值是否是1
,如果条件成立,返回对应HTML
模板,并在HTML
模板中设置属性和绑定事件;反之,也返回对应的模板。 -
在控制器中组装数组,把所有的属性都放入
array()
中,并发送给模板,例如: -
在模板中通过
foreach
循环出所有属性,调用辅助函数加载所有属性,注意模板中函数的写法,例如: -
使用
js
绑定事件,获取属性值,发送Ajax
请求到PHP
端,PHP
执行数据库更新操作即可。例如:
Laravel框架
- 首先在项目的Http文件夹中新建
Helpers
文件夹,里面新建一个文件,名字就叫admin.php
,里面同样自定义函数名并传入模型和属性两个参数,例如: - 接下来与TP不同的是,我们需要在
composer.json
文件的自动加载机制中引入admin.php
文件,例如:
然后在终端中执行自动加载命令:composer dump-autoload
命令,使其生效。 - 接下来,我们在模板中调用辅助函数加载各个属性:例如:
- 最后我们还是使用
js
绑定事件,发送AjAX
请求给PHP
端,PHP
执行更新即可。例如:
综上两种框架使用辅助函数的方式,代码编写上还是有点差异的,但是我们能很便捷的实现我们想要的功能,并且只使用了一个AJAX
请求就能达到目的,所以代码逻辑的优化也是很重要的。以上方法仅供大家参考和学习!