【问题标题】:"Reply " to message in symfony forms以 symfony 形式“回复”消息
【发布时间】:2011-09-28 04:43:14
【问题描述】:

我将 symfony 1.4.11 与 Doctrine 一起使用。我的网站上有私人消息,我想让用户可以“回复”消息。我尝试更改“编辑”方法,但我现在不这样做是个好主意。怎么做?现在我有

$this->forward404Unless(
    $messages = Doctrine_Core::getTable('Messages')->find(array($request->getParameter('id'))),
    sprintf('Object messages does not exist (%s).', $request->getParameter('id'))
);

$messages->setMessage('') ;
$messages->setTitle('Re:'.$messages->getTitle()) ;  
$messages->setRecipientId($messages->getSenderId()) ;
$this->form = new MessagesForm($messages);

但它不会创建新消息,它只会编辑...

【问题讨论】:

    标签: symfony1 symfony-1.4 symfony-forms private-messaging


    【解决方案1】:

    添加回复操作:

    public function executeReply(sfWebRequest $request)
    {
      $originalMessage = Doctrine_Core::getTable('Messages')->find(array($request['id']));
      $this->forward404Unless($originalMessage, sprintf('Object messages does not exist (%s).', $request['id']));
    
      $reply = new Message();
      $reply->setTitle('Re:'.$originalMessage->getTitle());  
      $reply->setRecipientId($originalMessage->getSenderId());
      $this->form = new MessagesForm($reply);
    }
    

    补充说明:

    • 您可以修改现有的新操作并添加检查以查看是否提供了原始消息 ID。
    • 始终以单数形式命名对象是一种数据库惯例。所以你的模型应该叫做 Message 而不是 Messages。
    • 如果需要复制原始消息的许多属性,您可以在Doctrine_Record 上使用copy 方法,而不是创建一个新的。
    • 您可能想要添加 dxb 提到的自我关系,以便您可以跟踪消息的回复内容。根据您的要求,您可能需要同时跟踪话题和回复。

    【讨论】:

    • 感谢您的回复和建议!
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多