Gavr_Gavr
@Gavr_Gavr

Как в Laravel отправить данные из формы на email?

Есть форма обратной связи.

<form action="{{ route('send') }}" method="post">
                    @csrf

                    <div class="form-group">
                        <label for="name">Ваше имя</label>
                        <input type="text" name="name" placeholder="Введите имя">
                    </div>

                    <div>
                        <label for="email">Ваша почта</label>
                        <input type="text" name="email" placeholder="Напишите вашу почту">
                    </div>

                    <div >
                        <label for="phone">Ваш номер телефона</label>
                        <input type="text" name="phone" placeholder="Напишите ваш номер телефона">
                    </div>
                    <button type="submit">Отправить</button>
                </form>

Есть роут для формы:
Route::post('/send', 'ContactController@send')->name('send');

есть контроллер:
namespace App\Http\Controllers;

use App\Contact;
use Illuminate\Http\Request;
use App\Http\Requests\ContactRequest;
use Mail;

class ContactController extends Controller
{
    
   public function send (Request $req){
   $firstname = $req->input('name');
  mail::send(['mailtest' , ['firstname' => $firstname] ], ['name' => 'ARTEM'], function($message) use ($firstname) {
     $message->to('myemail@gmail.com', 'ARTEM')->subject('test email');
    });
   }

Есть вьюшка с одной строчкой (с именем mailtest.blade.php):
Name: {{ $firstname }}

Компилятор ругается и говорит что не видит переменную во вьюшке. Как правильно передавать переменную во вьюшку?
  • Вопрос задан
  • 1036 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
artisan make:mail сгенерит вам Mailable класс и шаблон.
Все публичные поля этого класса будут доступны в шаблоне как переменные.
Для отправки просто вызываете

Mail::to($user->email)
  ->send(new RegistrationMail($user));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы