2012-09-17 1 views
2

CakePHP 프레임 워크에서 개인 메시징 시스템을 작성하는 사람이 누구인지 궁금합니다. 나는 페이스 북의받은 편지함 시스템과 비슷한 것을 목표로하고있다. 물론 복잡하지 않아야합니다!CakePHP 개인 메시징 시스템

현재 로그온 할 수있는 사용자가있는 AUTH 시스템이 있습니다.

+0

왜 모두 downvoting이 .. 내가 코드를 물어 보는 것 같지 않아, 난 그냥 올바른 방향으로 지적하고 싶어 ... – user1436497

답변

3

가장 간단한 방법은 바로, 적어도 다섯 개의 열에서와 messages 데이터베이스 테이블을 작성하는 것입니다 : id, sender_id, recipient_id, subject, body. 그런 다음 원하는 다른 열 (예 : created)을 추가 할 수 있습니다.

<?php 
class MessagesController extends AppController { 

    public function inbox() { 
     $messages = $this->Message->find('all', array(
      'conditions' => array(
       'recipient_id' => $this->Auth->user('id') 
      ) 
     )); 
    } 

    public function outbox() { 
     $messages = $this->Message->find('all', array(
      'conditions' => array(
       'sender_id' => $this->Auth->user('id') 
      ) 
     )); 
    } 

    public function compose() { 
     if ($this->request->is('post')) { 
      $this->request->data['Message']['sender_id'] = $this->Auth->user('id'); 
      if ($this->Message->save($this->request->data)) { 
       $this->Session->setFlash('Message successfully sent.'); 
       $this->redirect(array('action' => 'outbox')); 
      } 
     } 
    } 
} 

은 확실히 당신이 예제를 구체화하고, 응용 프로그램에 적용되지 않을 수도 있습니다 아무것도 변경해야합니다 다음과 같이 그런 다음 컨트롤러를 설정할 수 있습니다

. 또한 사용자가 원하는 경우 메시지를 보내려는 사람과 친구 인 경우 수표를 추가해야합니다.

+0

난 내 사용자 컨트롤러에 모든 기능을 가하고 사용자 컨트롤러를 사용하도록 생각하고 있었는데 메시징 테이블 어느 쪽이 더 효과적일까요? – user1436497

+0

일반적으로 모델 당 컨트롤러를 사용하는 것이 가장 좋습니다. 'messages' 데이터베이스 테이블, 그리고 그러므로'Message' 모델과 상호 작용할 때, 일반적으로 메시지를 생성, 읽기, 업데이트 및 삭제 (CRUD)하는 메소드를 포함하는 상응하는'MessagesController' 클래스를 생성합니다. 그런 다음 필요에 따라 CakePHP의 라우팅 구성 요소를 사용하여 경로를 변경할 수 있습니다. –