//模板
{if false}
1
{else/} //====》可以使用 效果同 {else /}
2
{/if}
{if condition="(1 eq 1) and false"} //可用 同 {if (1==1) AND (false)}
1
{else /}
2
{/if}

Tp5.1手册上并没有介绍model中如何使用事务回滚

 public function sendReply($id,$where)
{
$this->startTrans();
$result = Email::where($id)->update($where);
if ($result) {
//更新邮件状态
$this->commit();
} else {
$this->rollback();
}
return $result;
}

但是是可以直接拿来用的,注意一定是innodb型。myisam无效,涉及数据库操作时,直接操作完成,没有提交回滚什么事

测试1对1关联模型

dump($trade = EPTrade::get(3));
dump(EPTrade::get(3)->EPForm);
$trade['状态'] = $trade['状态'].'999';
$trade->EPForm['状态'] = $trade->EPForm['状态'].'99'; $trade->EPForm->save(); //只会保存EPForm中修改的数据,不保存$trade模型的数据
$trade->save(); //必须的 dump($trade = EPTrade::get(3));
dump($trade = EPTrade::get(3)->EPForm);

做验证的时候

当有个字段需要多行才能解决时,可以取个别名的方式

场景这么也是能用的

EPForm::where([['id', '=', $postId],['编号', '=', $userName]])->find();

如果字段不正确会直接报错

如果结果不存在会返回

如果查询到结果会返回

实现arrayAccress的对象

当修改成功是,返回的是 int(1)

当没有任何修改的时候返回int(0)

字段不存在或者类型不合适不会有任何表现,只会插入正确的字段(和转换后的结果?)

遇到一种情况

控制器层 Db::startTrans(),开启事务后,一段操作后,出现死锁。

解决办法是过程中用了助手函数db();改了之后正常。

参考

Thinkphp5.1当多个场景token附加的某固定字段无法保证每个场景都有时,可以这么用

2017-11-18:15:08:23

模板中可以使用公共方法

//D:\wwwroot90\application\user\common.php

function gp() {
return 'haogp';
}

2018-03-01 08:59:59

TP5.1模型关联forupdate问题

//GoldBuy模型
...
//购买 belongsTo 挂单
public function source()
{
return $this->belongsTo('GoldMarket', 'pid', 'id');
}
//调用
$buyInfo = GoldBuy::where('id', $ids)->lock(true)->find();
$buyInfo->source;

关联查询并没有锁记录

我的方案是

//调用
$buyInfo = GoldBuy::where('id', $ids)->lock(true)->find();
$buyInfo->source()->lock(true)->find();

Thinkphp5.1手册太简单,有的功能用起来不确定结果是否和预料的一样,顾整理记录的更多相关文章

  1. 在VS2012中实现Ext JS的智能提示太简单了

    Visual Studio 2012太强大了,居然能自己会去提取Ext JS的类的属性和方法,从而实现只能提示.下面就来介绍一下实现这个功能. 在Visual Studio 2012中随便创建一个We ...

  2. ThinkPHP5.0 实现 app微信支付功能

    相对于之前随笔写的<ThinkPHP5.0实现app支付宝支付功能>来说,php对接app微信支付功能就相对简单的多了,最近有加我的朋友问到app微信支付,所以我把app微信支付的demo ...

  3. 程序员深夜惨遭老婆鄙视,原因竟是CAS原理太简单?| 每一张图都力求精美

    悟空 种树比较好的时间是十年前,其次是现在. 自主开发了Java学习平台.PMP刷题小程序.目前主修Java.多线程.SpringBoot.SpringCloud.k8s. 本公众号不限于分享技术,也 ...

  4. System.DateUtils 1. DateOf、TimeOf 简单修饰功能

    编译版本:Delphi XE7 { Simple trimming functions } // 简单修饰功能 function DateOf(const AValue: TDateTime): TD ...

  5. python3实现简单爬虫功能

    本文参考虫师python2实现简单爬虫功能,并增加自己的感悟. #coding=utf-8 import re import urllib.request def getHtml(url): page ...

  6. 插件介绍 :cropper是一款使用简单且功能强大的图片剪裁jQuery插件。

    简要教程 cropper是一款使用简单且功能强大的图片剪裁jQuery插件.该图片剪裁插件支持图片放大缩小,支持鼠标滚轮操作,支持图片旋转,支持触摸屏设备,支持canvas,并且支持跨浏览器使用. c ...

  7. SharePoint 2013 &quot;通知我&quot;简单的功能

    简单的功能 "通知我"内部列表或文档库中的主要项目.加入/删除/修改等操作,用户的E- mail通知设定功能:设置列表或文档库通知的能力,有可能设置通知为一个单一的项目.这是Sha ...

  8. Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件!

    源:Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件! 2014年02月06日发布控件的重要更新版本: Victor 串口控件 1.5.0.2 版本 (包 ...

  9. 基于django的自定义简单session功能

    基于django的自定义简单session功能 简单思路: 1.建立自定义session数据库 2.登入时将用户名和密码存入session库 3.将自定义的随机session_id写入cookie中 ...

随机推荐

  1. JavaScript_9_循环

    1. JavaScript for/in 语句循环遍历对象的属性: 可以遍历数组,也可以遍历一个对象的所有属性 <body> <p>点击按钮,循环遍历对象“person”的属性 ...

  2. 2017.10.2 QBXT 模拟赛

    题目链接 T1 我们所要求得是(a*b)|x 也就是 使(a*b)的倍数小于x的个数之和 1<=x<=n 我们可以 找一个c使得 (a*b*c)<=x 由于我们所求的是一个三元有序对 ...

  3. Java 原型模式(克隆模式)

      Java 的设计模式有 23 种,前段时间小编已经介绍了单例模式,由于我们在学习 Spring 的时候在 bean 标签的学习中碰到了今天要讲的原型模式,那么小编就已本文来介绍下原型模式. 原型模 ...

  4. HTML5中的Web Workers

    https://www.cnblogs.com/yanan-boke/p/6954390.html https://segmentfault.com/a/1190000014938305 HTML5 ...

  5. javaweb基础(8)_HttpServletResponse生成验证码

    一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,

  6. Python——基本运算符

    计算机不止可以进行加减乘除,还可以进行多种运算,比如算数运算,逻辑运算,赋值运算等 算数运算 以下假设变量:a=10,b=20 比较运算 以下假设变量:a=10,b=20 赋值运算 以下假设变量:a= ...

  7. mina架构在JT/T808协议应用程序中的应用

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),M ...

  8. VueX源码分析(4)

    VueX源码分析(4) /module store.js /module/module.js import { forEachValue } from '../util' // Base data s ...

  9. python面向对象之抽象工厂设计模式

    class truck: def use(self): return "拉货" def __str__(self): return "大卡车" class mi ...

  10. node中的定时任务

    node-schedule每次都是通过新建一个scheduleJob对象来执行具体方法. 时间数值按下表表示 * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ ...