2012-10-12 2 views
0

나는 세 가지 모델이 있습니다CakePHP의 저장 외래 키

  1. 사용자
  2. 코멘트를

사용자는 (내가 페이스 북과 같은 상태를 의미 노트에 의해) 배수 노트를 가질 수 있으며, 메모에는 여러 개의 댓글이있을 수 있습니다.

댓글 테이블에서 실제로 외래 키인 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를 어떻게 저장합니까?

응용 프로그램 /보기/댓글/userscomment.ctp : 당신이 댓글을 입력 할 양식이 당신의보기에서

+0

당신은 일반적으로 메모 ID를 사용하여 페이지에 숨겨진 양식 입력 할 것이다 : '<입력 유형 = "숨겨진"name = "데이터 [Comment] [note_id]"value = "4"/>' –

+0

좀 더 분명히 해줄 수 있니, 나는 당신을 얻지 못했습니다. –

답변

0

,이 같은 컨트롤러에 메모 ID를 전송하는 형태로 작업을 지정할 수 있습니다

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

CONTROLLER :

공공 기능 notesview() {

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


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

보기 :

<?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; 
?>