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

//模板
{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);

做验证的时候

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

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

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

场景这么也是能用的

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

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

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

如果结果不存在会返回

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

如果查询到结果会返回

实现arrayAccress的Thinkphp5.1手册太简单,有的功能用起来不确定结果是否和预料的一样,顾整理记录对象

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

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

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

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

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

 遇到一种情况

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

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

参考

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

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

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

 2017-11-18:15:08:23

模板中可以使用公共方法

//D:wwwroot90applicationusercommon.php

function
gp() { return 'haogp'; }

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

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

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;

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

关联查询并没有锁记录

我的方案是

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

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