我在UserController.php中不断收到此错误'Class'App\Http\Controllers\Mail'not found'错误
public function store(CreateUserRequest $request)
{
$result = DB::table('clients')->select('client_code','name','email')
->where('client_code','=',$request->code)
->where('email','=',$request->email)
->first();
if($result){
$tmp_pass = str_random(10);
$user = User::create([
'username' => $result->name,
'email' => $request->email,
'password' => $tmp_pass,
'tmp_pass' => '',
'active' => 0,
'client_code' => $request->code
]);
if($user){
Mail::send('emails.verify',array('username' => $result->name, 'tmp_pass' => $tmp_pass), function($message) use ($user){
$message->to($user->email, $user->username)
->subject('Verify your Account');
});
return Redirect::to('/')
->with('message', 'Thanks for signing up! Please check your email.');
}
else{
return Redirect::to('/')
->with('message', 'Something went wrong');
}
}
else{
Session::flash('message', "Invalid code or email.");
return redirect('/');
}
}
Run Code Online (Sandbox Code Playgroud)
邮件功能曾经在Laravel 4中工作,但我在Laravel 5中遇到错误.任何帮助都将不胜感激.
luk*_*ter 27
Mail是全局命名空间内的别名.当您想从命名空间内部引用它时(例如App\Http\Controllers在您的情况下),您必须:
前缀反斜杠:
\Mail::send(...)
Run Code Online (Sandbox Code Playgroud)
或者use在您的类声明之前添加一个语句:
namespace App\Http\Controllers;
use Mail; // <<<<
class MyController extends Controller {
Run Code Online (Sandbox Code Playgroud)
您使用的其他外墙也是如此.喜欢Session和Redirect.
小智 5
另一种方法是使用邮件外观
use Illuminate\Support\Facades\Mail;
Run Code Online (Sandbox Code Playgroud)
在您的控制器中
| 归档时间: |
|
| 查看次数: |
28639 次 |
| 最近记录: |