В моем проекте после того, как кто-то заполнил ценовое предложение, я хочу отправить ему электронное письмо. В контроллере я сделал массив, который я хочу передать в почтовый ящик, чтобы показать в электронном письме.
Где я сейчас нахожусь:
$params = array(
'name' => $name, //user's data
'email' => $email,
'phone' => $phone,
'data' => $data, //other stuffs in the form
);
Mail::to($email)
->send(new pricequote($params));
И после этого как перейти от почтового класса к шаблону?
Ты можешь использовать;
namespace App \ Mail;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->view('emails.contacts')
->with(['data' => $this->data]);
}
Я предполагаю, что pricequote — это класс для отправки сообщений, тогда ваш класс для отправки ценовых предложений должен выглядеть следующим образом:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class pricequote extends Mailable
{
use Queueable, SerializesModels;
/**
* The data for the email instance.
*
* @var data
*/
protected $data;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('yourview')
->with(['data' => $this->data]);
}
}
Затем в ваших контроллерах вы можете отправить электронное письмо следующим образом:
Mail::to("mail@email.com")->send(new pricequote($data));
Laravel 5.1:
Вы можете выбрать вид, который вы хотите отправить по электронной почте, например:
$params = array(
'name' => $name, //user's data
'email' => $email,
'phone' => $phone,
'data' => $data, //other stuffs in the form
);
Mail::send('view', $params, function($m){
$m->to($this->argument('to_email'));
});
Первый аргумент — это представление, а второй — данные, к которым вы хотите иметь доступ.