Heim  >  Artikel  >  PHP-Framework  >  So erhöhen Sie den Primärschlüssel in Yii automatisch

So erhöhen Sie den Primärschlüssel in Yii automatisch

angryTom
angryTomOriginal
2020-02-20 10:42:422843Durchsuche

Bei Artikeln muss im Allgemeinen die Anzahl der Aufrufe gezählt werden. Im Allgemeinen besteht der Ansatz für kleine Projekte darin, ein Feld in der Datenbank direkt zu aktualisieren. Wie implementiert man das in Yii? Bitte lesen Sie unten

So erhöhen Sie den Primärschlüssel in Yii automatisch

So erhöhen Sie den Primärschlüssel in yii automatisch

Methode 1

Yii2 verfügt über diese statische Methode updateAllCounters. Das Codebeispiel lautet wie folgt:

Topic::updateAllCounters(['view_count' => 1], ['id' => $id]);// 实现的效果就是 view_count + 1,1根据你的需求可以是正数也可以是负数。

Wenn Ihre Bedingungen komplexer sind, können Sie so schreiben: Verwandte Tutorial-Empfehlungen: yii-Framework)

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

Wenn Ihr aktueller Bedarf darin besteht, den Wert eines Feldes zu aktualisieren und 1 zum Wert eines Feldes hinzuzufügen, können Sie versuchen, dies hier zu implementieren way:

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

PS: Der Standardwert des view_count-Feldes darf hier nicht auf null gesetzt werden.

Ausdruck bedeutet Ausdruck, der spezielleres SQL implementieren kann. Wenn Sie mehr wissen möchten, können Sie die Dokumentation durchsuchen.

Methode 2

当然你还可以这样去实现:
$model = Post::findOne($id);
$model->updateCounters(['view_count' => 1]);

Weitere Programmieranleitungen finden Sie auf der chinesischen PHP-Website!       

Das obige ist der detaillierte Inhalt vonSo erhöhen Sie den Primärschlüssel in Yii automatisch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn