2011-07-04 93 views
0

我使用symfony 1.4.11和Doctrine。我在我的網站中有私人消息,並且我希望使可能性成爲可能,用戶可以「回覆」消息。我嘗試改變「編輯」方法,但我現在不是這是一個好主意。 ?如何使它現在我有「回覆」以symfony格式發送消息

$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); 

但它不創造新的消息,它只能編輯...

回答

3

回覆主題行動:

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。
  • 這是一個數據庫慣例,總是以單數命名你的對象。所以你的模型應該被稱爲消息而不是消息。
  • 如果應該複製原始郵件的許多屬性,則可以使用Doctrine_Record上的copy方法,而不是創建一個新方法。
  • 您可能想要添加dxb提到的自我關係,以便您可以跟蹤消息是什麼答覆。您可能需要跟蹤線索和答覆,具體取決於您的要求。
+0

感謝您的回覆和建議! – denys281