2012-09-17 138 views
2

我只是想知道是否有人能让我开始在CakePHP框架上编写私人消息系统。我的目标是类似于Facebook收件箱系统。当然,它不一定非常复杂!CakePHP私人消息系统

我目前有一个AUTH系统,用户可以登录和注销。

+0

为什么每个人都低调这个..它不像我要求的代码,我只是想指出正确的方向.. – user1436497

回答

3

最简单的方法是在最起码,五列只创建一个messages数据库表:idsender_idrecipient_idsubjectbody。然后您也可以添加您想要的其他列,如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'模型,你通常会创建一个相应的'MessagesController'类,它包含创建,读取,更新和删除(CRUD)消息的方法。然后可以使用CakePHP中的路由组件在需要时更改路由。 –