6把刀

6把刀

这家伙有点懒,还没写个性签名!

  • 财富值610
  • 威望值80
  • 总积分2020

个人信息

  • 你这种都不是技术的事,是套路。
    你这个需求叫代管。那在代理商认证的流程里面加一个判断,只要是管理员,就直接跳过认证不就可以了

  • 很明显问题在send这个方法里

  • 原理很简单,事务只要不执行到$tr->commit();提交,数据就不会记录。程序运行轨迹一测便知哪问题

  • 其实方案很多,目前我用的方案就是第三方图片存储服务器,当然有自已的机房,配一台图片存储服务器就可以了,
    而我用的是阿里的oss图片存储,优点很多,主要的说下
    1.不管是后端还是前端,对于图片来说,从编辑器上传图片开始,他就是一个URL,不分前后端。
    2.图片可以自定义风格,比如大小,清晰
    3.安全,因为上传的文件就算给绕过上传了非法的可执行文件,就算是木马,也是无解。因为他传到的是第三方oss服务器,并且有严格的安全级别,不会把这些非法的文件上传到你的网站上。

  • 回复了 的回答

    fields方法控制输入字段

    fields方法控制输出字段有条件的,就是响应格式,你参考restfull api 里面的yii\rest\Serializer

    当RESTful API响应中包含一个资源时,该资源需要序列化成一个字符串。 Yii将这个过程分成两步,首先,资源会被yii\rest\Serializer转换成数组 这才是关键

  • 回复了 的回答

    应该大概或许是这个思路流程吧!错了也不要怪我!毕竟我也是个渣渣!有大神帮忙指点指点啊

    public function actionCreate()
    {
        $model = new Purchase();
        if($model->load(Yii::$app->request->post())){
            Yii::$app->getResponse()->format = 'json';
            $result = $this->Renew($model, Yii::$app->request->post());
        }else{
            $model->loadDefaultValues();  // 加载数据库默认值
            $model->loadDefaultOrderTime();  // 加载订单ID与订单日期
            return $this->render('create', ['model' => $model]);
        }
    }
    
    public function Renew($model, $post)
    {
         /** 开启事务 */
        $trans = Yii::$app->db->beginTransaction();
        try
        { 
            $results = $this->saveRenew($post);
            if($results['code'] == 400){
                 $trans ->rollBack(); //回滚事务(不知道这样可不可以删除全部的哈哈哈)
                throw new Exception($model->getErrors());
            }
            $trans->commit();  //提交事务
            return true;
        }catch (Exception $ex) {
            $trans ->rollBack(); //回滚事务
            return false;
        }
    }
    
    public function saveRenew($post)
    {
        $goods_id = ArrayHelper::getValue($post, 'PurchaseDetail.goods_id');       //
        //所有列的数据!PurchaseDetail是多个数组,要foreach循环去拿吧
    
        //先保存Purchase,如果保存成功拿出id,然后再循环组装下面的数组
    
        $values[] = [
            'goods_id' => $goods_id,
            //所有要保存的字段
        ];
    
        /** 最后添加$values数组到表里 batchInsert是批量保存 */
        $num = Yii::$app->db->createCommand()->batchInsert(/**需要保存到的表*/::tableName(), [
            'goods_id',//所有需要保存的字段
        ],$values)->execute();
    
        if($num > 0){
            return ['code' => 200];
        } else {
            return ['code' => 400];
        }
    }
    

    其实这种批量的有多种方式处理,事务可以是一种,队列也是一种,队列消息我觉的更灵活,比如批量100条记录,每循环一次处理数据,当处理到一条数据有异常时,添加标记与状态继续下一个循环,说的简单点就是短信群发,任务。

  • 回复了 的回答

    文章 articles
    点赞 like

    $articles->getlike()->where(['state' = 已点赞点赞->all();
    

    在文章的http://www.yiichina.com/doc/guide/2.0/db-active-record#dynamic-relational-query
    处,你也好意思说看过了? 有些问题不是我们不想回答,而是学者的态度根本就不想回答。

    $articles->find()->getlike()->where(['state' = 已点赞])->all();
    就是你想要的答案,问题是确实你没仔细看文档,点出你的错误,你就多看几遍,小样。
    findOne与all他的区别是一个是单,一个是多,跟getLike有毛关系。你按这个写,你会发现出来的就是你想要的数据结构。

    第一个回复,都指出让你看具体的文档的描点处了,注意指定描点处。。。。
    你回复看过了,看过个毛线,看过来会再来问这问题吗,我没认为你仔细看。
    指出你的问题,你确以

    你如果会就好好回答,如果不会,大可以不用回答,不用来这训我,你习惯性的把别人当成白痴吗?
    

    你就这么接受不了现实吗, 你就接受不了你确实对待一个问题没有仔细的看文档就直接闭着眼就提问吗。知道什么是技艺性提问吗。
    反而认为我这给你的解决问题是错误的。怎么不去思考下,是不是自已漏掉了什么?

    看我刻薄的态度,你知道什么态度对你最没用,你有思考过吗。

    有人能给我碰到问题指出建设性解决方案,打我都不还手,这就是学者的态度。小样长长记性,对你以后有帮助。

  • 文章 articles
    点赞 like

    $articles->getlike()->where(['state' = 已点赞点赞->all();
    

    在文章的http://www.yiichina.com/doc/guide/2.0/db-active-record#dynamic-relational-query
    处,你也好意思说看过了? 有些问题不是我们不想回答,而是学者的态度根本就不想回答。

  • 问题相当简单,就是怕说了,你听不懂,而且处理的方法N种,从你上面的代码来看,跟wechat 网页授权一点影子都没,怎么解决你的问题?请问你的微信网页授权是放哪的。就这提问的技巧,在githtub直接关闭。
    算了,这一说,又牵扯出来N多知识点。

  • 楼主,你的错误的问题在于,你可以卸载你的yii2,不要用就不会有这个错误了。
    你的问题是你就是出错了,他就得提示你,难不成提示成功,掩耳盗铃吗。
    想要关闭这个错误,太简单了,改正这个错误不就行了。

总监 等级规则
2020/5000
资料完整度
10/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

7

Ta的访客

26