Yii2框架 常用函数整合
1.使用事务添加数据:
public function create()
{
if($this->validate()) {
$trans = Yii::$app->db->beginTransaction();
$admin = new Admin();
try {
$admin->setAttributes($this->getAttributes());
$admin->status = Admin::STATUS_ACTIVED;
$admin->password_hash = Yii::$app->security->generatePasswordHash($this->password);
$admin->created_at = time();
$admin->updated_at = time();
$admin->profile_id = $this->createProfile()->id;
if($admin->save()) {
$trans->commit();
return true;
} $error = '';
foreach ($admin->errors as $es) {
foreach ($es as $e) {
$error .= ($e."<br />");
}
}
Yii::$app->session->setFlash('error', $error);
return false;
} catch (Exception $e) {
Yii::$app->session->setFlash('error', $e->getMessage());
$trans->rollBack();
return false;
}
} else {
$error = '';
foreach ($this->errors as $es) {
foreach ($es as $e) {
$error .= ($e."<br />");
}
}
Yii::$app->session->setFlash('error', $error);
return false;
} }
2.分类的集合管理类:
class Category {
// 组合一维数组
static public function unlimitedForLevel ($cate, $parent='pid', $html = '----', $suffix = '|', $pid = null, $level = 0) {
$arr = array();
foreach ($cate as $v){
if($v[$parent] == $pid){
$v['level'] = $level + 1;
$v['prefix'] = str_repeat($html, $level) . ($level ? $suffix : '');
$arr[] = $v;
$arr = array_merge($arr, self::unlimitedForLevel($cate, $parent, $html, $suffix, $v['id'], $level + 1));
}
}
return $arr;
}
// 组合多位数组
static public function unlimitedForLayer($cate,$name='child', $pid = 0) {
$arr = array();
foreach ($cate as $v){
if($v['pid'] == $pid){
$v[$name] = self::unlimitedForLayer($cate, $name, $v['id']);
$arr[] = $v;
}
}
return $arr;
}
// 传递一个子分类ID返回所有的父级分类
static public function getParents($cate, $id){
$arr = array();
foreach ($cate as $v){
if($v['id'] == $id){
$arr[] = $v;
$arr = array_merge(self::getParents($cate, $v['pid']), $arr);
}
}
return $arr;
}
// 传递一个父级分类ID返回所有的子级分类
static public function getChilds($cate, $pid, $name='child'){
$arr = array();
foreach ($cate as $v){
if($v['pid'] == $pid){
$v[$name] = self::getChilds($cate, $v['id'], $name);
$arr[] = $v;
}
}
return $arr;
}
// 传递一个父级分类ID返回所有的子级ID
static public function getChildsId($cate, $pid){
$arr = array();
foreach ($cate as $v) {
if($v['pid'] == $pid){
$arr[] = $v['id'];
$arr = array_merge($arr, self::getChildsId($cate, $v['id']));
}
}
return $arr;
}
}
Yii2框架 常用函数整合的更多相关文章
- 【转】JS常用函数整合库 lutils
lutils 此工具包是在 outils 的基础上,加上个人平时收集的代码片段进行的二次整合 outils的GitHub:https://github.com/proYang/outils/blob/ ...
- CI框架常用函数(AR数据库操作的常用函数)
用户手册地址:http://codeigniter.org.cn/user_guide/index.html 1.查询表记录$this->db->select(); //选择查询的字段$t ...
- Yii2框架---常用代码
一.Php控制器跳转 return $this->redirect('/site/index/index'); 二.回调自身控制器 self::actionXxxx(); 三.获取当前用 ...
- 十分钟能学会的框架,MVC+20个常用函数
LazyPHP(以下简称LP)是一个轻框架. 之所以开发这么一个框架,是因为其他框架给的太多.在高压力的情况下,ORM和盘根错节的对象树反而将简单的页面请求处理复杂化,在调试和性能上带来反面效果. L ...
- 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法
Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
- Yii2框架实现计数器功能
思路: 因为yii2框架没有像tp框架那样的setinc这样的累加函数,所以只能在每次累加之前查出当前的这个字段的值,然后写算法累加入库 例如:
- Yii2框架与MongoDB拓展、Redis拓展的安装流程
@author 周煦辰 2016-03-21 这段时间新上了一个项目,使用的是Yii2框架.这里记录一下Yii2框架.Yii2-Mongo拓展.Yii2-Redis拓展等的安装流程.因为使用的系统是W ...
- 《深入解剖Yii2框架》前言
写代码需要站在巨人的肩膀上,将主要精力集中在自己所需要实现的业务上面,避免反复搭建基础服务,重复造轮子.PHP框架就是这样一些巨人的"肩膀",使得我们"站"得更 ...
随机推荐
- JS高级---沙箱
沙箱 沙箱: 环境, 黑盒, 在一个虚拟的环境中模拟真实世界, 做实验, 实验结果和真实世界的结果是一样, 但是不会影响真实世界 全局变量 var num=10; console.log(nu ...
- ios 软键盘弹出布局被顶上去 已解决
document.body.addEventListener('focusout', () => { //软键盘收起的事件处理 set ...
- 采用PHP实现”服务器推”技术的聊天室
传统的B/S结构的应用程序,都是采用”客户端拉”结束来实现客户端和服务器端的数据交换. 本文将通过结合Ticks(可以参看我的另外一篇文章:关于PHP你可能不知道的-PHP的事件驱动化设计),来实 ...
- Python 编辑注意点
文本编辑 Python: 绝对不能用Word和Windows自带的记事本. (1)Word保存的不是纯文本文件 (2)记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导 ...
- pip install时报错
因为需要mysqlclient这个模块,但是在pip的时候报错 Collecting mysqlclient Using cached https://files.pythonhosted.org/ ...
- qq自己设定动态图像视屏
类似于样但是是自己定义的视屏先上壁纸 这个具体是怎么制作的呢? 先从网络上下载自己喜欢的mp4视屏 qq头像上面点击拍摄动态图像 先随意拍摄2秒保持拍摄完成的状态不要点击确定 然后用手机文件夹找到你要 ...
- 虚拟机linux系统网络连接配置问题总结
1.虚拟机与CentOS的安装与配置参考本人博客:https://www.cnblogs.com/ClikeL/p/11743520.html 2.测试网络连接 ping www.baidu.com ...
- # node中的url常用方法解析
url字符串是一个结构化的字符串,由好几个有意义部分组成.我们在工作中不可避免的会用到其中的某个部分,最原始的通过字符串截取和正则匹配的方法难免用起来会不太方便和美观,所以在我们的nodejs中提供了 ...
- 概念理解_L2范数(欧几里得范数)
L1范数 L1范数是指向量中各个元素绝对值之和 L2范数 L2范数.欧几里得范数一些概念. 首先,明确一点,常用到的几个概念,含义相同. 欧几里得范数(Euclidean norm) ==欧式长度 = ...
- Goahead WebSever 总结
编译成功后用http://127.0.0.1可以访问网站,若端口号不是默认的80,者访问时加“:端口”,如: http://127.0.0.1:8888 1.websHomePageHandler函数 ...