2012-10-12 30 views
0

我有三個型號:CakePHP的 - 儲存的外鍵

  1. 用戶
  2. 評論

一個用戶可以有數倍的音符(通過音符我的意思是像Facebook狀態)和一張紙條可以有多個評論。

在評論表中,我想存儲實際上是外鍵的user_id和note_id。

評論控制器:

public function userscomment() 
{ 
    if (!empty($this->data)) 
    { 
     $commentdata = $this->data; 
     $commentdata['Comment']['user_id'] = $this->Auth->user('id'); 
     $this->Comment->save($commentdata); 
    } 

現在,作爲用戶id容易識別,它存儲在數據庫中,但我怎麼確定的評論是這張紙幣?

如何存儲評論的註釋ID?

+0

你會通常與筆記ID您的網頁上隱藏的表單輸入:'' –

+0

請問你能更清楚些嗎,我沒搞明白 –

回答

0

在你看來,你有你的表單輸入評論,您可以指定發送照會ID到控制器這樣的形式操作:

應用程序/瀏覽/評論/ userscomment.ctp

echo $this->Form->create('Comment', array(
    'url' => array('385') // 385 is the note_id 
)); 
echo $this->Form->textarea('comment'); 

echo $this->Form->end('Submit Comment'); 

應用/控制器/ CustomersController.php

public function userscomment($note_id) { 

    if (!empty($this->data)) { 

     $commentdata = $this->data; 
     $commentdata['Comment']['user_id'] = $this->Auth->user('id'); 
     $commentdata['Comment']['note_id'] = $note_id; 
     $this->Comment->save($commentdata); 

    } 
} 
+0

這是什麼問題呢。在這裏你已經手動輸入了ID,但是我不知道如何自動調用ID。就像每個音符都有一個唯一的ID一樣,所以如何通過Auth組件調用用戶ID。 –

+0

好的,在某個地方你必須知道視圖中的音符ID,不是嗎?否則,你如何顯示該筆記或已經存在的評論?你可以發佈你的視圖HTML,所以我可以看看? – BadHorsie

+0

檢查下面的視圖和控制器。 –

0

控制器:

公共職能的NotesView() {

$allnotes = $this->User->Note->find('all', array('order'=>'Note.created DESC')); 


    if (!empty($this->params['requested'])) 
     {    
     return $allnotes;   
     } 
    } 

VIEW:

<?php 
echo $this->Html->css('notes'); 
echo $this->Html->script(array('jquery','jquery.elastic','notes')); 
?> 
<div class="notescontainer"> 
<div class="share">Share:</div> 
<div class="notes">Notes</div> 
<div class="loading"></div> 
<div class="img_top"></div> 
<div class="text_status"> 

<?php 
echo $this->form->create('Note', array('action' => 'notes', 'onSubmit' => 'return loadingicon();')); 
echo $this->form->input('notes',array('class'=>'notesbar','label'=>'','placeholder'=>'Write down you notes ...')); 
?> 
</div> 
<div class="button_outside_border" id="share"> 
<div class="button_inside_border"> 

<?php 
echo $this->form->submit('Share',array('class' => 'sharebutton')); 
echo $this->form->end(); 
?> 
</div> 
</div> 
<div class="clear"></div> 
</div> 

<?php 

$allnotes = $this->requestAction(array('controller'=>'Users', 'action'=>'notesview')); 
foreach($allnotes as $viewnotes): 
{ 
    echo "<div class='load_status'>"; 

    echo "<img class='status_img' src="; echo $viewnotes['User']['image']; echo ">"; 

    echo "<div class='status_text'>" ?> 

    <a href="users/profileview/<?php echo $viewnotes['User']['id']?>" class='blue'> 
    <?php 
    echo $viewnotes['User']['name']; 
    echo "</a>"; 

    echo "<p class='text'>"; 
    echo $viewnotes['Note']['notes']; 
    echo "</p>"; 


    echo " 
    <a href='#' class='light_blue'>Like</a> &middot; 
    <a href='#' class='light_blue'>Comment</a> &middot "; 
    echo "<u class='date'>"; echo $viewnotes['Note']['created']; echo"</u>"; 

    echo $this->element('comments'); 

    echo "</div>"; 


    echo "<div class='clear'></div>"; 
    echo "</div>"; 


} 
endforeach; 
?>