【发布时间】:2012-09-09 16:51:04
【问题描述】:
我只是想知道是否有人可以让我开始在 CakePHP 框架上编写私人消息系统。我的目标是类似于 Facebook 收件箱系统。当然不必那么复杂!
我目前有一个 AUTH 系统,用户可以登录和注销。
【问题讨论】:
-
为什么每个人都反对这个......这不像我在要求代码,我只是想指出正确的方向......
标签: php cakephp private-messaging
我只是想知道是否有人可以让我开始在 CakePHP 框架上编写私人消息系统。我的目标是类似于 Facebook 收件箱系统。当然不必那么复杂!
我目前有一个 AUTH 系统,用户可以登录和注销。
【问题讨论】:
标签: php cakephp private-messaging
最简单的方法是创建一个至少包含五列的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 中的路由组件来更改路由。