Laravel - 发送邮件后无法重定向

Laravel - Can't redirect after sending mail

发送邮件后(我的代码会这样做),我想将用户重定向到另一个视图 (main.blade.php) 但没有任何反应。

在我的表单中,我调用了 sendemail 路由,代码如下:

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

在我的 web.php 中,路由定义如下:

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

我的SendEmailController.php看起来像:

<?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');    
   }
}

已阅读此主题:Redirect to contacts page after submitting form in laravel 4

但对我不起作用。

编辑:

问题不是来自 Laravel,而是来自 AJAX,问题已解决。

to 方法接受路径,而不是路由名称。它适用于

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

要在重定向中使用路由名称,您必须使用

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

Docs.