Whiteoctober-Swiftmailer-Bundle的设置

时间:2017-11-07 16:44:50

标签: database symfony entity bundle swiftmailer

我想通过我的数据库使用whiteoctober软件包来假脱机电子邮件。到目前为止,我已经按照安装进行了操作,但现在我已经停留在电子邮件实体本身的设置中(我知道..)

所以他们提供了这个应该在我自己的电子邮件实体中实现的EmailInterface(https://github.com/whiteoctober/WhiteOctoberSwiftMailerDBBundle/blob/master/EmailInterface.php)。文档说:

  

您需要创建一个可以持久保存的实体,该实体可以从捆绑包中的EmailInterface接口扩展。在   当时,捆绑包期望您的实体可以使用该属性   调用' status',因为此字段被查询。

     

完成所有实体的设置后,请使用完整的命名空间路径   你的config.yml配置如上所述。

我有以下需求:

  • 由于发生了不同的操作,会向多个用户发送电子邮件 在申请中。但是,电子邮件应该单独发送 所以" To"中只有一个用户字段

  • 用户应该能够接收电子邮件(每天可能收到一两封电子邮件) - >但是,可能会发生这样的情况:用户被分配到多个电子邮件,但他仍然应该只被添加到数据库一次!

除此之外,该软件包提供了消息,状态和环境作为属性,我说实话 - 并非100%确定如何实现它们。

所以这就是我到目前为止所做的:

   <?php

namespace NewsBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use WhiteOctober\SwiftMailerDBBundle\EmailInterface;

/**
 * @ORM\Entity
 * @ORM\Table(name="news_email")
 */
class Email implements EmailInterface
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\OneToMany(targetEntity="UserBundle\Entity\User", mappedBy="spooledEmail", cascade={"persist"})
     *
     */
    protected $whereTo;
    /**
    * @ORM\Column(type="string", name="subject")
    */
    protected $subject;
    /**
    * @ORM\Column(type="text", name="message")
    */
    protected $message;
    /**
    * @ORM\Column(type="string", name="status")
    */
    protected $status;
    /**
    * @ORM\Column(type="string", name="environment")
    */
    protected $environment;

    /**
     * @return string
     */
    public function getMessage()
    {
        return $this->message;
    }

    /**
     * @param $message string Serialized \Swift_Mime_Message
     */
    public function setMessage($message)
    {
        $this->message = $message;

        return $this;
    }

    /**
     * @return string
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * @param $status string
     */
    public function setStatus($status)
    {
        $this->status = $status;

        return $this;
    }

    /**
     * @return string
     */
    public function getEnvironment()
    {
        return $this->environment;
    }

    /**
     * @param $environment string
     */
    public function setEnvironment($environment)
    {
        $this->environment = $environment;

        return $this;
    }

}

所以我设置了它并更新了数据库。但是我现在如何使用捆绑包呢?我该如何发送电子邮件等?我觉得文档并没有为非专业人士提供足够的信息。

2 个答案:

答案 0 :(得分:0)

您可能正在寻找的命令是

doctrine:generate:entities NewsBundle:Email

生成吸气剂&amp; setters(注意entities而不是entity)。 希望它有所帮助

答案 1 :(得分:0)

根据我从文档中理解的内容,您需要更新数据库架构,然后配置swiftmail以使用它:

# app/config/config.yml

white_october_swift_mailer_db:
    keep_sent_messages: true

您是否进行过任何测试以确定其是否有效?