2017-03-17 9 views
0

私はブログを作成しようとしています。すべてのブログに、ページの下部に作成された最新のブログが表示されます。この数を4つの最近のブログに限定する方法はありますか?現在、作成されたすべてのブログは、「最近のブログ」エリアに表示されるため、作成時に表示されます。CakePHPで作成された「Recent Blogs」の数を制限する方法は?

<div class="container" id="newsextra"> 
    <h4>MORE NEWS</h4> 
    <div class="row"> 

     <?php 
     if(!empty($error)){ 
     echo $error; 
    } 
    if (!empty($blogsinfos)) { 
    foreach ($blogsinfos as $blogs): ?> 

    <div class="col-md-3"> 
     <a href="/news-single/<?= h($blogs->id)?>"> 
     <img src="<?= h($blogs->mainimg)?>" class="img-responsive"> 
     <h5><?= h($blogs->title)?></h5> 
     <h6><?= h($blogs->created)?></h6> 
     </a> 
    </div> 

     <?php 
    endforeach; 
     } 
    ?> 
    </div> 
</div> 
+2

まずを試し、コントローラに移動し、 '$のblogsinfos'は、ビューに設定されている場所から関数を見つけます。次に、制限を4に設定して '$ blogsinfos'のクエリを変更します。 – Aarrbee

+0

この例のようにリクエストに制限を定義する必要があります。 $ this-> find() - > limit(4) - > order(['date' => 'desc]) – Gransfall

+0

@Gransfall このような意味ですか? $ this-> loadModel( 'ブログ'); $ opts1 ['conditions'] =配列( 'Blogs.status' => 1); $ blogsinfos = $ this->ブログ - > find( 'all'、$ opts1); $ this-> set( 'blogsinfos'、$ blogsinfos); $ this-> set( '_ serialize'、['blogsinfos']); $ this-> find() - > limit(4) - > order(['date' => 'desc') foreach($ blogsinfos as $ blogs){ $ proid = $ blogs ['id ']; } –

答えて

0

コントローラから、生成された投稿の数を制限する必要があります。回答は@ Rik.eshに感謝します。

$this->loadModel('Blogs'); 
$opts1['conditions'] = array('Blogs.status' => 1); 
$opts1['limit'] = 4; 
$opts1['order'] = array('Blogs.created' => 'desc'); 
$blogsinfos = $this->Blogs->find('all',$opts1); 
$this->set('blogsinfos', $blogsinfos); 
$this->set('_serialize', ['blogsinfos']); 

foreach ($blogsinfos as $blogs) { 
    $proid = $blogs['id']; 
} 
-1

すべてのこの

$opts1['order'] = 'Blogs.created desc'; 
関連する問題