2017-03-18 56 views
0

如何從數據庫中獲取特定數量的數據?我正在與Yii2合作。 我迄今試圖爲:來自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>"; 
} 

在for循環它讓我過去後ofcourse的含量的3倍,但我應該如何重建它的工作? 我看了很多帖子,但沒有找到答案,或者我不明白如何使其工作! 這個想法只是顯示網站主頁上的最後3篇文章。 預先感謝您!

回答

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>"; 
    } 

[注:]如果使用ActiveQuery ::一個()或警予\ DB \查詢::一個(),您需要添加limit(1),因爲yii2不會自動爲你做的,所以如果您使用->orderBy(["post_id" => SORT_DESC]),MySQL會將所有表列提取到您的Web服務器,並且yii2只檢索其中一個列。如果表中有大量記錄,這可能會導致504網關超時錯誤的請求狀態。

+0

很高興知道!萬分感謝! –