2012-02-25 13 views
8

Tôi cần tạo ba liên kết ngẫu nhiên đến các bài đăng khác, trong chức năng xem bài đăng của tôi.CakePHP - chọn ngẫu nhiên từ cơ sở dữ liệu và Xem

Bộ điều khiển:

$random = $this->Post->find('all', array( 
      'order' => 'rand()', 
      'limit' => 3, 
      'conditions' => array('Post.status' => 'ok') 
      )); 

Nhưng tôi không biết, làm thế nào để viết một foreach cho việc này.

Cảm ơn

Trả lời

18

Nó sẽ phụ thuộc vào trường bạn nhận được từ bài đăng. Tôi sẽ thay đổi khiển mã chỉ một chút như thế này:

$this->set('random_posts', $this->Post->find('all', array( 
    'conditions' => array('Post.status' => 'ok'), 
    'order' => 'rand()', 
    'limit' => 3, 
))); 

Sau đó, trong giao diện bạn lướt qua chúng trong foreach:

<?php 
foreach ($random_posts as $random_post) { 
    echo $this->Html->link($random_post['Post']['name'], array('controller' => 'posts', 'action' => 'view', $random_post['Post']['id'])); 
} 
?> 

Hãy chắc chắn để cập nhật các trường trong HTML liên kết đến những người phù hợp với những gì đã trở lại từ mô hình Đăng.

+0

Vâng, đó là nó! Cảm ơn – user1183721

1

Trên máy tính địa phương của tôi mã này đang làm việc nhưng trên máy chủ sống nó tạo id ngẫu nhiên chỉ một lần, sau đó lặp lại với cùng id

$max = 
    $this->Article->find('first', 
         array('conditions'=>array('Article.status'=>'Active'), 
         'order' => 'rand()')); 
Các vấn đề liên quan