zoukankan      html  css  js  c++  java
  • 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);

    做验证的时候

     

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

    场景这么也是能用的

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

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

    如果结果不存在会返回

    如果查询到结果会返回

    实现arrayAccress的对象

     

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

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

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

     遇到一种情况

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

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

    参考

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

     2017-11-18:15:08:23

    模板中可以使用公共方法

    //D:wwwroot90applicationusercommon.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();

  • 相关阅读:
    jquery插件课程1 幻灯片、城市选择、日期时间选择、拖放、方向拖动插件
    博客园随笔如何自动生成目录(原理:页脚js函数且执行)
    JAVA web四个属性的范围汇总
    关于继承modelDriven接口action的ajax来电参数
    Objective-C基调(4)Category
    Easyui使用记录
    jQuery地图热点效应-后在弹出的提示鼠标层信息
    跨境移动互联网的魅力演绎,hao123无论成就下一个条目?
    启示—地点IT高管20在职场心脏经(读书笔记6)
    C# 获得Excel工作簿Sheet页面(工作表)集合的名称
  • 原文地址:https://www.cnblogs.com/8000cabbage/p/7524802.html
Copyright © 2011-2022 走看看