2017-03-18 4 views
0

Wie kann ich bestimmte Menge von Daten aus der Datenbank nehmen? Ich arbeite mit Yii2. Was ich versucht habe, so weit ist:Spezifische Menge von Daten aus der Datenbank in Yii2

$model = new \app\models\Post(); 

for($i = 0; $i < 3; $i++) { 
    $post = $model::find()->orderBy(["post_id" => SORT_DESC])->one(); 
    $contetnt = $post['content']; 

    echo "<div>" . $contetnt . "</div>"; 
} 

Mit dem for-Schleife zeigt es mir 3 mal den Inhalt des letzten Beitrags ofcourse, aber wie soll ich es rekonstruieren zu arbeiten? Ich habe mir viele Posts angeschaut, aber die Antwort nicht gefunden, oder vielleicht habe ich nicht verstanden, wie es funktioniert! Die Idee ist nur, um die letzten 3 Beiträge auf der Homepage der Website zu zeigen. Vielen Dank im Voraus!

Antwort

0
$model = new \app\models\Post(); 
    $posts = $model::find()->orderBy(["post_id" => SORT_DESC])->limit(3)->all(); 
    foreach ($posts as $post){ 
     $contetnt = $post['content']; 
     echo "<div>" . $contetnt . "</div>"; 
    } 

[Anmerkung:] wenn Sie ActiveQuery verwenden :: one() oder yii \ db \ Abfrage :: one(), müssen Sie limit(1) hinzufügen, weil yii2 nicht automatisch für Sie tut, Wenn Sie also ->orderBy(["post_id" => SORT_DESC]) verwenden, holt MySQL alle Tabellenspalten auf Ihren Webserver und yii2 ruft einfach einen von ihnen ab. Dies kann zu einem Anforderungsstatus des 504-Gateway-Zeitüberschreitungsfehlers führen, wenn die Tabelle große Datensätze aufweist.

+0

Gut zu wissen! Vielen Dank! –

Verwandte Themen