魏曦教你学

魏曦教你学

魏曦课堂

  • 财富值2890
  • 威望值60
  • 总积分5470

个人信息

  • 2016-08-01 已签到
    连续签到1天,获得了5个金钱
  • 2016-06-12 已签到
    连续签到1天,获得了5个金钱
  • 赞了回答

    首先配置一下缓存,自己选择是用文件缓存还是数据库缓存等。

    'cache'         => [
                'class' => 'yii\caching\FileCache',
            ],
    

    然后就可以通过 Yii::$app->cache->set()Yii::$app->cache->get() 设置、获取缓存内容了。
    下面是一个带缓存依赖的实例:

    //表达式依赖  
    $dp = new ExpressionDependency([
                    'expression' => 'count(Yii::$app->authManager->getPermissionsByUser(Yii::$app->user->id))'
                ]);
    //数据库依赖(sql)  
                $dp2 = new DbDependency([
                    'sql' => 'select max(updated_at) from auth_item',
                ]);
    //链式依赖(把以上2个依赖串起来,任何一个发生变化都会使缓存失效)  
                Yii::$app->cache->set($key, $value, 0, new ChainedDependency([
                    'dependencies' => [$dp, $dp2]
                ]));
    
  • 2016-05-10 已签到
    连续签到1天,获得了5个金钱
  • 2016-05-07 已签到
    连续签到1天,获得了5个金钱
  • 2016-05-03 已签到
    连续签到1天,获得了5个金钱
  • 2016-04-29 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的评论

    请问在显示首页详细文章中actionDetail中,发表匿名评论的时候, 第一次是点击“发布”才可以发表评论成功,然后回到本页面,然后我F5刷新页面又会提交一次

     $postModel = new Comment();
            print_r(Yii::$app->request->post());
            if ($postModel->load(Yii::$app->request->post()))
            {
                $postModel->status=Comment::STATUS_PENDING;
                $postModel->post_id=$id;
                if ($postModel->save())
                {
                    $this->added=1;
                }
             /*   $this->redirect(['post/detail', 'id'=>$id]);*/
            }
    

    在一次提交评论后我打印post都有数据, 导致刷新页面都会提交评论(之前的评论);如果我redirect就不会提交重复评论,但是added之类的就显示不出来了
    请问怎么解决这个问题

    试下 $this->redirect(['post/detail', 'id'=>$id, 'added'=>1]);印象中是可以传多个的。

  • 回复了 的评论

    请问在显示首页详细文章中actionDetail中,发表匿名评论的时候, 第一次是点击“发布”才可以发表评论成功,然后回到本页面,然后我F5刷新页面又会提交一次

     $postModel = new Comment();
            print_r(Yii::$app->request->post());
            if ($postModel->load(Yii::$app->request->post()))
            {
                $postModel->status=Comment::STATUS_PENDING;
                $postModel->post_id=$id;
                if ($postModel->save())
                {
                    $this->added=1;
                }
             /*   $this->redirect(['post/detail', 'id'=>$id]);*/
            }
    

    在一次提交评论后我打印post都有数据, 导致刷新页面都会提交评论(之前的评论);如果我redirect就不会提交重复评论,但是added之类的就显示不出来了
    请问怎么解决这个问题

    可以把added的值一起带过去,这样可以避免重复提交。 不过要提醒你,这只是一个用来讲解yii的demo,如果要做一个可以使用的博客,可能需要太多地方修改,建议用一些成熟的开源程序来改,可能会好一点。

  • 2016-04-27 已签到
    连续签到1天,获得了5个金钱
副总裁 等级规则
5470/10000
资料完整度
90/100
用户活跃度
0/100

Ta的关注

44

Ta的粉丝

359

Ta的访客

982