Система комментирования для блога CakePHP - PullRequest
2 голосов
/ 03 июня 2010

Я строю учебник CakePHP для движка блога, добавляя комментарии к каждому посту. Я могу добавлять комментарии, выбирая сообщение, к которому оно должно быть прикреплено, через поле выбора. Я хотел бы иметь возможность щелкнуть ссылку «Добавить комментарий» в сообщении и создать ассоциацию с сообщением, созданным программным путем. Я не уверен, как я могу передать post_id в метод add в моем comments_controller. Тело моего метода add - это автоматически сгенерированный код скаффолда. Это так же просто, как добавить аргумент $ postId в метод add и записать его в post_id в моей модели комментариев? Это не кажется правильным, так как я ожидаю, что add будет вызван, когда моя кнопка отправки будет нажата на моем представлении добавления комментариев.

Спасибо всем.

РЕДАКТИРОВАТЬ - Добавлен код, с которым я работаю в настоящее время. Это просто метод add в моем comments_controller.

function add($postid = null) {             
    if(!empty($this->data) {
         $this->Comment->create();                          
         $this->Comment->post_id = $postid;
         if ($this->Comment->save($this->data)) {
            $this->Session->setFlash(__('The Comment has been saved', true));
            $this->redirect(array('action' => 'index'));
         } else {
             $this->Session->setFlash(__('The Comment could not be saved. Please, 
                                          try again.', true));
         }
    }   
    $this->set('post_id', $postid);     
    print_r($postid);
}

Ответы [ 2 ]

3 голосов
/ 08 июня 2010
function add($postid = null) {             
    if(!empty($this->data) {
         $this->Comment->create();                          
         $this->data['Comment']['post_id'] = $postid; // see how it needs to be?
         ...then save the data...
0 голосов
/ 03 июня 2010

Создайте ссылку внизу вашего блога как,

<?php echo $html->link('Add Comment', array('controller'=>'Comments','action'=>'add',$post->id)) ?>

Тогда вы можете, в методе Add вашего контроллера Comments,

function add($postid){
  $this->data->Comment->post_id = $postid;
  $this->data->Save();
}

Похоже на это, я бы сказал, что ты в порядке. Тогда ваш URL будет example.com/comments/add/3. Дважды проверьте код, так как это первое, что происходит утром, и у нас кончилось молоко, поэтому у меня не было кофе! ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...