這是我嘗試使用 Laravel 發送電子郵件時遇到的錯誤:
Illuminate\Mail\PendingMail::send():引數 #1 ($mailable) 必須是 Illuminate\Contracts\Mail\Mailable 型別,App\Http\Livewire\Auth\ResetPassword 給定,在 /Users/andreiraileanu/Development/ 中呼叫蛋白質/app/Http/Livewire/Auth/ResetPassword.php
所以我有一個 livewire 組件,我在其中重置用戶密碼:
<?php
namespace App\Http\Livewire\Auth;
use Livewire\Component;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Mail;
use App\Models\User;
class ResetPassword extends Component
{
public $email;
public $phone;
protected $user;
protected $rules = [
'email' => 'required|email',
'phone' => 'required|digits:10',
];
public function submit()
{
$this->validate();
$this->user = User::where('email', $this->email)
->where('phone', $this->phone)
->first();
if ($this->user) {
\Debugbar::info('Identified User ID: '.$this->user->id);
$this->user->password = Str::random(8);
\Debugbar::info('New password is: '.$this->user->password);
$this->user->password = Hash::make($this->user->password);
$this->user->save();
\Debugbar::info('Password saved!');
Mail::to($this->user->email)->send(new ResetPassword($this->user));
} else {
$this->dispatchBrowserEvent('notify', ['content' => 'Adresa de email nu exist? sau num?rul de telefon este incorect', 'type' => 'error']);
\Debugbar::error('Wrong email and/or phone number.');
}
}
public function render()
{
return view('livewire.auth.reset-password');
}
}
在這個組件中,我有一行嘗試像這樣通過電子郵件發送新密碼,Mail::to($this->user->email)->send(new ResetPassword($this->user));但出現上述錯誤。
這就是我的 Mailable 的樣子:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\Models\User;
class ResetPassword extends Mailable
{
use Queueable, SerializesModels;
protected $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function build()
{
return $this->subject('Order Shipped')
->view('emails.auth.reset-password');
}
}
我究竟做錯了什么?以前從來沒有遇到過這個錯誤。
uj5u.com熱心網友回復:
App\Http\Livewire\Auth\ResetPassword你在你的而不是你的ResetPasswordMailable 類中呼叫類本身App\Mail
在您的情況App\Http\Livewire\Auth\ResetPassword下,您需要呼叫ResetPasswordwhich is from your App\Maillike so;
namespace App\Http\Livewire\Auth;
use Livewire\Component;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Mail;
use App\Models\User;
use App\Mail\ResetPassword as ResetPasswordMail;
然后像這樣使用它;
Mail::to($this->user)->send(new ResetPasswordMail($this->user));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/506733.html
上一篇:錯誤:類Src\GestionConciertos\Concierto\Application\AlmacenarConcierto的物件無法在Laravel上轉換為字串
下一篇:串列不會自動更新撰寫
