저는 CakePHP 전문가는 아니지만, 여전히 독자적인 컨트롤러를 가지고 있다고 생각합니다. 내가 CakePHP 블로그 튜토리얼 중 하나를 할 때 기억하는 것은 코멘트 모델에서 코멘트와 게시물을 연결해야한다는 것입니다.
class Comment extends AppModel
{
var $name = ‘Comment’;
var $belongsTo = array(‘Person’);
}
을 그리고 당신이 컨트롤러 (comments_controller.php)가 필요합니다 :
이
class CommentsController extends AppController
{
var $name = ‘Comments’;
var $scaffold;
}
일부 SQL :
CREATE TABLE comments (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
author VARCHAR(50),
comment TEXT,
person_id INT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
$scaffold
이 만듭니다 이것은 내가 그것에서이 코드의 일부입니다 CRUD 응용 프로그램이므로 브라우저에서/의견을 입력 할 때 c, r ead, u pdate 및 d elete 코멘트. 보시다시피 여기에는별로 관련이 없습니다. 필요한 것은 데이터베이스 테이블과 person_id를 제공하는 약간의 논리뿐입니다.
<h2>Add comment</h2>
<?php
echo $form->create(‘Comment’, array(‘action’=>‘add/’.$person[‘Person’][‘id’]);
echo $form->input(‘author’);
echo $form->input(‘content’);
echo $form->submit(‘Add comment’);
echo $form->end();
?>
그리고 당신의 CommentsController의 :
function add($id = NULL) {
if (!empty($this->data)) {
$this->data['Comment']['person_id'] = $id;
$this->data['Comment']['id'] = '';
if ($this->Comment->save($this->data)) {
$this->Session->setFlash('Commented added');
$this->redirect($this->referer());
}
}
}
그래서 당신은 기본적으로 표준 작업을 추가 덮어 쓰기, 케이크는 그 자체로 추가
는 (당신의 사람 /보기) 주석을 저장합니다. 희망은 지금 이해된다. 또한 경로가 필요하므로/comments/add/ID를 선택하십시오. 나는이 부분에 대해 모른다. :)
감사합니다. 나는 이것을 많이 이해한다. 내가 한 질문은 내 코멘트 컨트롤러에서 person_id를 참조하는 방법입니다. – Justin
나는이 예제를 확장했다. – Till