[英]Target class [EmailController] does not exist
我正在嘗試在 Laravel 中使用 smtp 電子郵件。 當我提交注冊表時出現此錯誤,到目前為止我已經完成了所有配置。 很難找到錯誤是什么到目前為止我使用了控制器和郵件類仍然無法解決它
幫助
請幫忙
這是我的 EmailController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\SendigEmail;
class EmailController extends Controller
{
function index()
{
return view('send_email');
}
function send(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
]);
$data = array(
'name' => $request->name,
);
Mail::to('Receiver Email Address')->send(new SendigEmail($data));
return back()->with('success', 'Thanks for contacting us!');
}
}
這是我的注冊表單 register.php
@extends('layouts.app')
@section('content')
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://unpkg.com/gijgo@1.9.13/js/gijgo.min.js" type="text/javascript"></script>
<link href="https://unpkg.com/gijgo@1.9.13/css/gijgo.min.css" rel="stylesheet" type="text/css" />
<section id="hero" class="d-flex align-items-center">
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Register') }}</div>
<div class="card-body">
<form method="POST" action="{{ url('sendemail/send') }}">
@csrf
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="Profession / Occupation" class="col-md-4 col-form-label text-md-right">{{ __('Profession / Occupation') }}</label>
<div class="col-md-6">
<input id="Profession/Occupation" type="text" class="form-control @error('Profession/Occupation') is-invalid @enderror" name="Profession / Occupation" value="{{ old('Profession / Occupation') }}" required autocomplete="Profession / Occupation">
@error('Profession/Occupation')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="PhoneNumber" class="col-md-4 col-form-label text-md-right">{{ __('PhoneNumber') }}</label>
<div class="col-md-6">
<input id="PhoneNumber" type="number" class="form-control @error('phonenumber') is-invalid @enderror" name="PhoneNumber" value="{{ old('PhoneNumber') }}" required autocomplete="PhoneNumber">
@error('PhoneNumber')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="State" class="col-md-4 col-form-label text-md-right">{{ __('') }}</label>
<div class="col-md-6">
<label for="inputState" class="form-label">State</label>
<select id="inputState" class="form-select">
<option selected>Choose..</option>
<option>Nigeria</option>
</select>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Date of Birth') }}</label>
<div class="col-md-6">
<input id="datepicker" width="250" />
<script>
$('#datepicker').datepicker({
uiLibrary: 'bootstrap'
});
</script>
<script>
$(document).ready(function() {
var date_input = $('input[name="date"]'); //our date input has the name "date"
var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : "body";
var options = {
format: 'mm/dd/yyyy',
container: container,
todayHighlight: true,
autoclose: true,
};
date_input.datepicker(options);
})
</script>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" name="send" class="btn btn-primary">
{{ __('Register') }}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
這是我的郵件類 SendMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendigEmail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public $emails;
public function __construct($emails)
{
$this->emails = $emails;
}
/**
* Build the message.s
*
* @return $this
*/
public function build()
{
return $this->subject('Message from Visitor')
->view('email_template')
->with('emails', $this->emails);
}
}
.config 郵件文件
<?php
return [
/*
|--------------------------------------------------------------------------
| Default Mailer
|--------------------------------------------------------------------------
|
| This option controls the default mailer that is used to send any email
| messages sent by your application. Alternative mailers may be setup
| and used as needed; however, this mailer will be used by default.
|
*/
'default' => env('MAIL_MAILER', 'smtp'),
/*
|--------------------------------------------------------------------------
| Mailer Configurations
|--------------------------------------------------------------------------
|
| Here you may configure all of the mailers used by your application plus
| their respective settings. Several examples have been configured for
| you and you are free to add your own as your application requires.
|
| Laravel supports a variety of mail "transport" drivers to be used while
| sending an e-mail. You will specify which one you are using for your
| mailers below. You are free to add additional mailers as required.
|
| Supported: "smtp", "sendmail", "mailgun", "ses",
| "postmark", "log", "array"
|
*/
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.googleemail.com.io'),
'port' => env('MAIL_PORT', 465),
'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
'username' => env('hamjeth68@gmail.com'),
'password' => env('0752283810Hamjeth'),
'timeout' => null,
'auth_mode' => null,
],
'ses' => [
'transport' => 'ses',
],
'mailgun' => [
'transport' => 'mailgun',
],
'postmark' => [
'transport' => 'postmark',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => '/usr/sbin/sendmail -bs',
],
'log' => [
'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
'transport' => 'array',
],
],
/*
|--------------------------------------------------------------------------
| Global "From" Address
|--------------------------------------------------------------------------
|
| You may wish for all e-mails sent by your application to be sent from
| the same address. Here, you may specify a name and address that is
| used globally for all e-mails that are sent by your application.
|
*/
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'hamjeth'),
],
/*
|--------------------------------------------------------------------------
| Markdown Mail Settings
|--------------------------------------------------------------------------
|
| If you are using Markdown based email rendering, you may configure your
| theme and component paths here, allowing you to customize the design
| of the emails. Or, you may simply stick with the Laravel defaults!
|
*/
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
我的路線文件
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('home');
});
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
//Route::get('/', 'PageController@index')->name('root-page');
//Route::get('/page/{slug}', 'PageController@index')->name('page');
Route::get('/home-two', function () {
return view('home2');
});
Route::get('/why1', function () {
return view('why');
});
Route::get('/web', function () {
return view('webinars');
});
Route::get('/contact1', function () {
return view('contact');
});
Route::get('/lawma1', function () {
return view('lawma');
});
Route::get('/news1', function () {
return view('news');
});
Route::get('/commitment1', function () {
return view('commitment');
});
Route::get('/support1', function () {
return view('support');
});
Route::get('/business1', function () {
return view('business');
});
Route::get('/partnership1', function () {
return view('partnership');
});
Route::get('/Research1', function () {
return view('Research');
});
Route::get('/donate1', function () {
return view('donate');
});
Route::get('/Volunteer1', function () {
return view('Volunteer');
});
Route::get('/payhere1', function () {
return view('payhere');
});
Route::get('/book-now', function () {
return view('booknow');
});
Route::get('/new-user', function () {
return view('newuser');
});
Route::get('/', 'EmailController@index');
Route::post('/sendemail/send', 'EmailController@send');
Route::get('/personal-development', function () {
return view('personaldevelopment');
});
Route::get('/inspiring-student', function () {
return view('inspiringstudent');
});
//dd(\Illuminate\Support\Facades\Session::all());
最近的 Laravel 版本不會自動應用命名空間前綴。
您應該使用use
語句或使用 FQCN 來引用您的控制器。
// Option one, through a use statement.
use App\Http\Controllers\EmailController;
Route::get('/', [EmailController::class, 'index']);
// Option two, through FQCN.
Route::get('/', 'App\Http\Controllers\EmailController@index');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.