【问题标题】:Laravel - Can't redirect after sending mailLaravel - 发送邮件后无法重定向
【发布时间】:2021-02-01 14:42:37
【问题描述】:

在发送邮件(我的代码执行此操作)后,我想将用户重定向到另一个视图(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,问题解决了。

【问题讨论】:

  • 您能否编辑您的问题以包括刀片形式、路线和完整的控制器方法
  • 是的,@Ballard

标签: php laravel redirect view return


【解决方案1】:

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

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

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

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

Docs.

【讨论】:

  • 我刚刚尝试了你的两个答案,但没有一个对我有用
  • 尝试时会发生什么?包括更多细节,因为 不起作用 不能被抽象为错误。日志文件中写了什么?
  • 我的日志文件是空的,屏幕上什么也没有发生,没有错误没有消息
  • 这是我的代码public function main(){ return view('main'); }
  • 我问了我的队友,确实在我的项目中使用了一些 AJAX,它阻止了任何重定向,我只是更改了 js 代码,现在我的项目可以工作了!谢谢
猜你喜欢
  • 2022-12-13
  • 1970-01-01
  • 2021-02-03
  • 2021-11-21
  • 1970-01-01
  • 2015-10-01
  • 2019-06-09
  • 2018-07-08
  • 2020-01-04
相关资源
最近更新 更多