yii中如何讓主鍵自動增加

文章一般都有統(tǒng)計瀏覽次數(shù)的需求,一般小型項目的做法就是直接 update 數(shù)據(jù)庫中的某個字段。在 yii 中怎么實現(xiàn)呢?請往下看

yii中如何讓主鍵自動增加

yii中如何讓主鍵自動增加? ??

方式一

Yii2 中有這個?updateAllCounters?靜態(tài)方法,這種方式是最快并且最省事的實現(xiàn)方式,代碼示例如下:

Topic::updateAllCounters(['view_count'?=>?1],?['id'?=>?$id]);//?實現(xiàn)的效果就是?view_count?+?1,1根據(jù)你的需求可以是正數(shù)也可以是負(fù)數(shù)。

如果你的條件比較復(fù)雜你可以這樣寫:(相關(guān)教程推薦:yii框架

Topic::updateAllCounters(['view_count'?=>?1],?['and',?['xxx'?=>?0,?'yyy'?=>?2],?['>',?'zzz',?$time]);

如果你現(xiàn)在的需求是:更新一個字段的值,一個字段的值 +1,你可以試著用這種方式去實現(xiàn):

Topic::updateAll( ????['view_count'?=>?new?Expression('`view_count`?+?1'),?'updated_at'?=>?time()], ????['id'?=>?$id] );

PS:此處的?view_count?字段默認(rèn)值切記不能設(shè)置為?null。

Expression?是表達(dá)式的意思,可以實現(xiàn)更多特殊 SQL,想了解更多,可以去搜索一下文檔。

方式二

當(dāng)然你還可以這樣去實現(xiàn): $model?=?Post::findOne($id); $model->updateCounters(['view_count'?=>?1]);

更多yii框架,請關(guān)注PHP中文網(wǎng)!? ? ? ??

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊9 分享