2015-05-19 90 views
0

我該如何獲得24小時後纔會更改的隨機結果?Cakephp:每天隨機記錄一次

$random = $this->Post->find('first',array(
     'conditions' => array(
      'Post.active'=>1, 
     ), 
     'order' => 'rand()', 
    )); 
    $this->view($random['Post']['id']); 
    $this->render('view'); 

回答

0

您可以嘗試使用基於當前日期的rand()函數的種子。

$random = $this->Post->find('first', array(
    'conditions' => array(
     'Post.active' => 1, 
    ), 
    'order' => 'rand(' . date('Ymd') . ')', 
)); 

或者,緩存結果並每天刷新一次緩存。

+0

我收到以下錯誤:'數據庫錯誤錯誤:SQLSTATE [42S22]:未找到列:1054未知列「1431993600」在順序子句SQL查詢:SELECT Item.item_state_id,Item.title,Item.slug,Item。 id item.parent_id,Item.presentation,Item.image,Item.image_dir,Item.tag_title FROM enjoytoscana_01.vnt_items AS Item WHERE Item.parent_id = 63 AND Item.item_state_id = 1 ORDER BY RAND(1431993600)ASC LIMIT 12注意:如果您想自定義此錯誤消息,請創建應用程序/視圖/錯誤/ pdo_error.ctp' – Dvd74

+0

原始文章中的代碼是否工作?例如,''order'=>'rand()'工作嗎?如果您的原始代碼正常工作,我看不到我的代碼可能會失敗。您可能需要將'rand()'添加到select中,或者將其更改爲'SELECT *' –