【发布时间】:2018-10-20 16:20:03
【问题描述】:
我已经安装了 laravel 5.4 并想确认用户注册,通过带有队列的电子邮件,成功创建作业表,数据也插入到表用户中,但是当我运行 PHP 工匠队列时它什么也没输出:工作 命令。 我的 gmail 邮箱什么也没收到 我花了很多时间来解决它,但仍然没有工作。任何帮助将不胜感激,非常感谢。
Jobs/SendVerificationEmail 类:
class SendVerificationEmail implements ShouldQueue
{
protected $user;
public function __construct($user)
{
$this->user = $user;
}
public function handle()
{
$data = ['email_token' => $this->user->email_token];
Mail::send('email.email', $data, function($message) {
$message->subject('This mail send by Queue Laravel 5.4');
$message->to($this->user->email);
});
}
}
Contoller/RegistrationController 类:
class RegistrationController extends Controller
{
public function create()
{
return view('register');
}
public function register(Request $request)
{
//create user
$user = new User;
$user->name = $request->name;
$user->email = $request->email;
$user->password = bcrypt($request->password);
$user->email_token = base64_encode($request->email);
$user->save();
dispatch(new SendVerificationEmail($user));
return view('verification');
//add role by default the new registred saved as a User Role
$user->roles()->attach(Role::where('name', 'User')->first());
// redirect
//return redirect('/posts');
//login
auth()->login($user);
}
public function verify($token)
{
$user = User::where('email_token',$token)->first();
$user->verified = 1;
if($user->save())
{
return view('emailconfirm',['user'=>$user]);
}
}
}
【问题讨论】:
-
你告诉它要处理哪个队列了吗?
-
代码在哪里?
-
展示你如何排队作业的示例
-
我使用队列数据库
-
您使用的队列名称是什么?它存储在作业表的队列列中。例如,如果您的队列名称是
default,而您的连接是database,则运行artisan queue:work database --queue=default开始处理作业
标签: php laravel-5.4