xjdata

第 70 位会员

会员
个人信息
  • 加入于 2015-07-12 05:02:12
  • 最后登录时间 21小时前
个人成就
  • 发表文章次数 35
  • 发布回复次数 15
  • 个人主页浏览次数 26
通过配置的方式重写某个Yii2 文件 或第三方扩展文件1年前

额...... 麻烦代码高亮部分的css换一个吧. 现在的太暗了,暗的都需要仔细盯着看了.

图片

有没有好的方法能获取增删改等操作的SQL语句?1年前

debug模式下, 日志里有, 要想通过代码获取,还不知道,看看手册什么的。。。

话说是为了确认增删改时的字段操作吗?

Yii2 自带事件的用法1年前

@ilvsx #12楼 晕,,,, 有啥尴尬的, 倒是楼主非常不错啊. 不论如何非常感谢你.

Yii2 自带事件的用法1年前

@ilvsx #9楼 请问, 你在代码里实现了一个 抽象类, user blog 都继承了. 但是我在实际使用中 model基本上都是继承自yii2的ar的. 我需要怎样才能将你的观察者加入到自己的代码中呢? 谢谢.

Yii2 自带事件的用法1年前

@ilvsx #9楼 大概看明白了. 我还需要在实际中多使用下,才能理解你的这些代码.

主要还是设计模式. 这个观察者模式,在我接触的应用中很是需要, 比如很多时候应用需要记录很多操作的 每一步详细日志. 以便之后确认责任.

之前我也是使用了yii2的 事件. 但是因为自己很菜, 所以总是感觉 实现的没有那么干净利索. 多谢.

Yii2 自带事件的用法1年前

@ilvsx #7楼

请教. 能否将你描述的, Model 的时候,触发 saving 事件,这个时候就可以编写一个保存日志和一个更新缓存的观察者,以后只要保存 Model ,就可以把日志记录下来,同时更新缓存 给一个实际的例子呢? 非常需要,但是很菜.... 谢谢了.

写了个 App 限免通知的项目,邀请种子用户1年前

呃.... 已经过了追的年纪.... 不过支持下. 顶!

塑造成功框架的哲学2年前

呃..... 薛老大的文章,没有多少实际的干货~~~~

最近yii2文章荒,真希望多一些优质的资料啊。

比如站长翻译的cookbook类似的内容在多一些就好了。

呃。。。。 貌似yii2的整体社区的活跃度没有laravel活跃~ 希望使用yii2的人员也越来越多吧。

求一个事件、行为的例子。2年前

呃..... 我最后只是使用了行文,然后再model_a上单纯的增加了一个逻辑字段解决的问题。 但是感觉不够优雅。以后如果有好的解决办法,一定回来补上详细内容。

Yii2 如何实现 RESTful?2年前

求REST的 用户认证部分资料, 还希望@forecho 能够来一个完整的教程,谢谢。 干活集里的看了很多次,没有实际代码总是不是很明白很多。还希望能够满足我大大的愿望。谢谢。

请问唯一性验证具体的执行方式,以及消耗。避免重复提交2年前

@yiqing #11楼 个人感觉这个可能是相对较好的办法了。同时也感谢其他的朋友们,恩。c/s过来的,感觉web其实就是一个开放了ui的c/s。 只是细节细分的太多太多了。 比如现在的这个问题,也许现在看起来合适,但以后其他的场景,或者其他的解决方案会有很多很多。 慢慢来吧。

谢谢各位!

请问唯一性验证具体的执行方式,以及消耗。避免重复提交2年前

@abrahamgreyson #12楼 非常赞成 过早的优化,是 bug 产生的根源。 刚刚接触yii看了很多资料,知道了缓存,于是自己尝试写了一些,可是现在自己联手的项目越来越多的问题,归根结底还是因为自己对这些技术没有经验并且掌握的不够透彻,哎。。。慢慢来。

请问唯一性验证具体的执行方式,以及消耗。避免重复提交2年前

@forecho #6楼 可以麻烦贴下代码吗?新手有很多细节都想搞清楚。谢谢。

请问唯一性验证具体的执行方式,以及消耗。避免重复提交2年前

@abrahamgreyson

因为才开始web不久,所以下面的内容可能让你见笑了。还请指导,如果应用有100个需要发布的地方,那么session中的key就有100个,我的问题是,如果有100个用户同时在线,那么session中的存储是不是100*100个?

@zuoRambo

恩,可以这么说,可是我面对的用户年龄都大一点,以前c/s的时候就会有 不小心手一抖就2下鼠标点下去了。所以必须得避免。

@forecho

以下是我暂时不成熟的解决办法。如果有好的方式,还请大家多多分享指导。

view部分

<?php \common\widgets\JsBlock::begin() ?>
    <script>
        $('form#<?=$form->id?>').on('beforeValidate', function (e) {
            $(':submit').attr('disabled', true).addClass('disabled');
        });
        $('form#<?=$form->id?>').on('afterValidate', function (e) {
            if (cheched = $(this).data('yiiActiveForm').validated == false) {
                $(':submit').removeAttr('disabled').removeClass('disabled');
            }
        });
        $('form#<?=$form->id?>').on('beforeSubmit', function (e) {
            $(':submit').attr('disabled', true).addClass('disabled');
        });
    </script>
<?php \common\widgets\JsBlock::end() ?>

controller部分

 public function actionCreate()
{
         if (Yii::$app->request->isPost) {
            if (yii::$app->session->getFlash('sending_' . yii::$app->user->id, false)) {
                //返回发布成功时应该返回的页面,但是也有问题,就是如果出现js判断不了的错误,那因为第二次或n次提交造成,之前的model中的error信息无法显示了。但暂时我还是使用了这个方法.
                return $this->redirect(['client/view', 'id' => $model->client_id]);
            }
            //...
            //...
        }
        yii::$app->session->setFlash('sending_' . yii::$app->user->id);
         return $this->render('create', [
            'model' => $model,
        ]);
}

虽然看起来貌似解决了,但是我依然还是有第一点疑问。如果应用有100个需要发布的地方,那么session中的key就有100个,我的问题是,如果有100个用户同时在线,那么session中的存储是不是100*100个?