Laravel - Can't redirect after sending mail

Viewed 541

After sending a Mail (which my code does), I want to redirect the user to another view (main.blade.php) but nothing is happening.

In my form, I call the sendemail route, here is the code:

<form method="POST" action="{{ route('sendemail') }}">

In my web.php the routes are defined as following:

Route::get('/', 'PagesController@main')->name('main');
Route::post('/sendemail', "SendEmailController@send")->name('sendemail');

And my SendEmailController.php looks like:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\SendMail;
use Illuminate\Support\Facades\Redirect;

class SendEmailController extends Controller
{
    public function send()
    {
        $data = request()->validate([
            'name'     =>  'required',
            'email'  =>  'required|email',
            'message' =>  'required',
            'company' => 'required',
            'knowledge' => 'required',
            'reason' => 'required',
            'subject' => 'required'
        ]);
        Mail::to('example@example.eu')->send(new SendMail($data));

        return redirect()->to('main');    
   }
}

Have read this topic : Redirect to contacts page after submitting form in laravel 4

But didn't work for me.

EDIT:

The problem did not came from Laravel but from AJAX, problem solved.

1 Answers

to method accepts path, not route name. It will work with

return redirect()->to('/');

To use route name in redirection you have to use

return redirect()->route('login');

Docs.

Related