嗨!感谢您的提问。在 Laravel 中,要实现问题重定向到一个路由后发送电子邮件表格,您可以按照以下步骤进行操作:
routes/web.php
文件中添加以下代码来创建路由:Route::post('/submit-form', 'FormController@submitForm')->name('form.submit');
这里将表格提交的路由路径设置为 /submit-form
,并将其指向 FormController
的 submitForm
方法。
FormController
的控制器,用于处理表单提交和发送电子邮件的逻辑。可以使用以下命令来生成控制器:php artisan make:controller FormController
FormController
中的 submitForm
方法中编写表单提交和发送邮件的逻辑。以下是一个示例:<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\ContactFormEmail;
class FormController extends Controller
{
public function submitForm(Request $request)
{
// 在这里处理表单提交逻辑
// 可以通过 $request 对象获取表单字段的值
// 发送电子邮件逻辑
$data = [
'name' => $request->input('name'),
'email' => $request->input('email'),
// 其他表单字段...
];
Mail::to('your-email@example.com')->send(new ContactFormEmail($data));
// 返回响应或重定向到其他页面
}
}
在上述代码中,我们使用 Laravel 的邮件功能发送电子邮件。请确保您已经配置好了邮件服务提供商,例如 SMTP 或其他驱动程序。
ContactFormEmail
的邮件类,用于生成发送给您的电子邮件的内容。可以使用以下命令生成邮件类:php artisan make:mail ContactFormEmail
ContactFormEmail
类的 build
方法中编写生成邮件内容的逻辑。以下是一个示例:<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class ContactFormEmail extends Mailable
{
use Queueable, SerializesModels;
protected $data;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->view('emails.contact-form')
->with($this->data)
->subject('New Contact Form Submission');
}
}
在上述代码中,我们使用了一个视图文件 emails.contact-form
来定义电子邮件的内容。您可以根据实际需求创建该视图文件。
contact-form.blade.php
的视图文件,用于定义电子邮件的内容。您可以在 resources/views/emails
目录下创建该文件,并编写自定义的电子邮件模板。完成以上步骤后,当用户提交表单时,表单数据将被传递到 FormController
的 submitForm
方法中进行处理。随后,电子邮件将通过邮件服务提供商发送到指定的接收者。
希望这些信息对您有帮助!如需了解更多 Laravel 相关内容,可以访问腾讯云的 Laravel 文档:Laravel 云开发文档。
领取专属 10元无门槛券
手把手带您无忧上云