CakePHP 私人消息系统
Posted
技术标签:
【中文标题】CakePHP 私人消息系统【英文标题】:CakePHP Private messaging system 【发布时间】:2012-09-09 16:51:04 【问题描述】:我只是想知道是否有人可以让我开始在 Cakephp 框架上编写私人消息系统。我的目标是类似于 Facebook 收件箱系统。当然不必那么复杂!
我目前有一个 AUTH 系统,用户可以登录和注销。
【问题讨论】:
为什么每个人都反对这个......这不像我在要求代码,我只是想指出正确的方向...... 【参考方案1】:最简单的方法是创建一个至少包含五列的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'));
显然,您需要充实此示例,并更改可能不适用于您的应用程序的任何内容。如果您也需要,您还需要添加检查用户是否与他们尝试发送消息的人是朋友。
【讨论】:
我正在考虑将所有功能放入我的用户控制器中,让用户控制器只使用消息传递表。哪种方式更有效? 最好的做法是为每个模型配备一个控制器。当您与messages
数据库表进行交互时,因此也与Message
模型交互,您通常会创建一个相应的MessagesController
类,其中包含创建、读取、更新和删除(CRUD)消息的方法。然后,如果需要,您可以使用 CakePHP 中的路由组件来更改路由。以上是关于CakePHP 私人消息系统的主要内容,如果未能解决你的问题,请参考以下文章
创建一个像 facebook 和 gmail 这样的线程私人消息系统
使用 Mongoid 的 MongoDB 对话/私人消息模式
在 PHP 中使用 Node.js、Socket.io、Redis 的私人聊天消息