2011-06-28 41 views
1

我試圖在我的cns_controller.php文件的index()方法中檢索數據庫中記錄的id。我想用它作爲find()。但是,$ this-> Cn-> id沒有返回值,因此find()也不起作用。

$uses = array('Cn', 'Release'); 

/*check non-null value in released_user_id, 
showing Release tab has been signed off*/ 
$releaseSignedOff = $this->Release->find('all', array(
    'conditions' => array('Release.cn_id =' => $this->Cn->id, 
        'Release.released_user_id !=' => null) 
)); 
(sizeof($releaseSignedOff) > 0) ? $releaseSignedOff = true : $releaseSignedOff = false; 
$this->set('releaseSignedOff', $releaseSignedOff); 

任何想法?

感謝

+0

你是否在'$ this-> Cn'某處保存了一條記錄?如果沒有沒有ID返回。另外,相當肯定應該是'$ uses = array('Cn','Release')' – cspray

+0

不,我在這一點上做的是收集數據以推送到'索引'視圖。 是的,它是我的代碼中的一個數組,只是在上面輸入錯誤 - 現在修復。 – weedave

+0

我的view()方法與我的index()方法非常相似,只是它接受了一個'cn_id'參數,然後我在find()中使用它。顯然,index()沒有這個參數。 :| – weedave

回答

0

我結束了不使用我的index視圖,而不是我在cns數據庫表中查找最近的記錄,並使用返回值作爲參數重定向到view觀點:

if (!$id) { 
    $most_recent_change_note = $this->Cn->find('first', array(
     'order' => array('Cn.id DESC') 
    )); 
    $this->redirect(array('controller' => 'cns', 
     'action' => 'view/'.$most_recent_change_note['Cn']['id'])); 
} 

對於分頁,我結束了使用CakePHP的$neighbors特點:

function get_neighbors($id) { 
    $neighbors = $this->Cn->find('neighbors', array('field' => 'id', 
     'value' => $id)); 
    $this->set('neighbors', $neighbors); 
} 

然後在我view的看法,我用這些值來創建鏈接:

<div class="paging"> 
    <?php echo ($neighbors['next']) ? $html->link('<< Prev', 
     array('controller'=>'cns', 
     'action'=>'view/'.$neighbors['next']['Cn']['id'])).' | ' : '<< Prev | '; 
    echo $html->link('Next >>', array('controller'=>'cns', 
     'action'=>'view/'.$neighbors['prev']['Cn']['id'])); ?> 
</div> 

感謝查爾斯和羅斯幫助我得出這個結論。 :)