0
twigとswiftmailerでスリム3アプリケーションを設定するだけです。Twigテンプレートデータswiftmailer
私は、顧客テーブルからメールアドレスと名前を取得するためにMailControllerを作った。それはすごくうまくいき、私が作成したtwigテンプレートを使って、適切なアドレスにメールを送る。しかし、問題は、私は小枝でセットアップしたデータです。
私のコントローラのコードはここに
<?php
namespace Cart\Controllers;
use Slim\Router;
use Slim\Views\Twig;
use Cart\Models\Order;
use Cart\Models\Product;
use Cart\Models\Address;
use Cart\Models\Delivery;
use Cart\Models\Customer;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
/**
* @return MailController
*/
class MailController
{
protected $transport;
protected $mailer;
private $view;
public function __construct(Twig $view)
{
$this->view = $view;
// Create Transport
$https['ssl']['verify_peer'] = FALSE;
$https['ssl']['verify_peer_name'] = FALSE;
$this->transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')
->setUsername(username)
->setPassword(password)
->setStreamOptions($https)
;
// Create Mailer with our Transport.
$this->mailer = \Swift_Mailer::newInstance($this->transport);
}
public function mailLisbeth($hash)
{
// // Here I'm fetching my email template from my template directory.
$welcomeEmail = $this->view->fetch('mail/order.twig');
$mailorder = Order::with('customer', 'address', 'products')->where('hash', $hash)->first();
// Setting all needed info and passing in my email template.
$message = \Swift_Message::newInstance('Ordre fra Webshop')
->setFrom(array('[email protected]' => 'Kent'))
->setTo(array(
$mailorder->customer->email => $mailorder->customer->name,
))
->setBody($welcomeEmail)
->setContentType("text/html");
// Send the message
$results = $this->mailer->send($message);
}
}
そして、私の小枝のテンプレートである彼女の
<div class="row">
<div class="col-md-12">
<h3>Order #{{ mailorder.order.id }}TEST</h3>
<hr>
<div class="row">
<div class="col-md-6">
<h4>Kunde:</h4>
{{ mailorder.customer.name }}<br>
{{ mailorder.customer.email }}<br>
<h4>Leveringsadresse:</h4>
{{ mailorder.address.address1 }}<br>
{{ mailorder.address.address2 }}<br>
{{ mailorder.address.city }}<br>
{{ mailorder.address.postal_code }}<br>
<h4>Leveringstidspunkt:</h4>
{{ mailorder.delivery.delivery }}<br>
{{ mailorder.delivery.deliverydate }}<br>
{{ mailorder.delivery.deliverytime }}<br>
</div>
<div class="col-md-6"></div>
<h4>Varer:</h4>
{% for product in customer.products %}
<a href="{{ path_for('product.get', {slug: product.ID })}}">{{ product.Navn }}</a> (x {{ product.pivot.quantity}})<br>
{% endfor %}
</div>
<hr>
<p>
Levering: DKK 150,00 <br>
<strong>Order total: DKK {{ order.total | number_format(2,',','.')}}</strong>
</p>
</div>
</div>
問題は小枝テンプレートに通信販売変数の欠落通過である可能性があります - しかし以来I別のページで同じ設定と変数を使用しました - なぜそれが小枝テンプレートに入らないのかわかりません。
誰かが手がかりを持っている希望...おかげで
これは完璧に機能しました。ありがとうございます。 –