當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Post::updateCounters方法代碼示例

本文整理匯總了PHP中common\models\Post::updateCounters方法的典型用法代碼示例。如果您正苦於以下問題:PHP Post::updateCounters方法的具體用法?PHP Post::updateCounters怎麽用?PHP Post::updateCounters使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在common\models\Post的用法示例。


在下文中一共展示了Post::updateCounters方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: toggleType

 /**
  * 喝倒彩或者讚
  * @param User $user
  * @param Post $model
  * @param $action 動作
  * @return array
  */
 protected static function toggleType(User $user, Post $model, $action)
 {
     $data = ['target_id' => $model->id, 'target_type' => $model::TYPE, 'user_id' => $user->id, 'value' => '1'];
     if (!UserMeta::deleteOne($data + ['type' => $action])) {
         // 刪除數據有行數則代表有數據,無行數則添加數據
         $userMeta = new UserMeta();
         $userMeta->setAttributes($data + ['type' => $action]);
         $result = $userMeta->save();
         if ($result) {
             // 如果是新增數據, 刪除掉Hate的同類型數據
             $attributeName = $action == 'like' ? 'hate' : 'like';
             $attributes = [$action . '_count' => 1];
             if (UserMeta::deleteOne($data + ['type' => $attributeName])) {
                 // 如果有刪除hate數據, hate_count也要-1
                 $attributes[$attributeName . '_count'] = -1;
             }
             //更新版塊統計
             $model->updateCounters($attributes);
             // 更新個人總統計
             UserInfo::updateAllCounters($attributes, ['user_id' => $model->user_id]);
         }
         return [$result, $userMeta];
     }
     $model->updateCounters([$action . '_count' => -1]);
     UserInfo::updateAllCounters([$action . '_count' => -1], ['user_id' => $model->user_id]);
     return [true, null];
 }
開發者ID:nsdown,項目名稱:getyii,代碼行數:34,代碼來源:UserService.php


注:本文中的common\models\Post::updateCounters方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。