当前位置: 首页 > 知识库问答 >
问题:

Laravel重定向和逻辑队列与电子邮件验证

秦飞航
2023-03-14

我在前端有一个表格,其中有一些城市详细信息、房间详细信息和用户注册信息,比如我有城市名称、房间名称,地址等电子邮件地址和相同形式的密码,我在一个控制器中完成了创建城市和注册用户的两个逻辑。这两个数据都保存在数据库中的正确表格中,但我希望第一个用户应该注册,如果用户被验证,则只有房间详细信息应该保存在数据库中

我不知道是该再申请还是怎么申请

public function checkLogin(Request $request)
{
  $user = User::create([
    'name'=>$request->name,
    'email'=>$request->email,
    'password'=>$request->password,
    'role_id' => config('quickadmin.default_role_id'),
  ]);
  if ($user) {
      if (Auth::check()) {
        $city = TotalCity::create([
            'name'=>$request->name,
            'created_by'=>$request->created_by_id,
        ]);
      }
       return redirect()->to('/admin/home');
  }
}

共有1个答案

刘阳荣
2023-03-14

让我向您展示我可能如何编写此逻辑:

public function checkLogin(Request $request)
{
  $user = User::firstOrCreate([
    'email'=> $request->email,    
  ], 
  [
    'name'=> $request->name,
    'password'=> bcrypt($request->password),
    'role_id' => config('quickadmin.default_role_id'),
  ]);

  if (Auth::check()) {  
  // it's not clear if you utilize `email_verified_at`, if so 
  // if (Auth::check() && Auth::user()->email_verified_at) {

    $city = TotalCity::create([
        'name'=>$request->name,
        'created_by'=> Auth::user()->id, // or $user->id depending on your preference
    ]);
  }
  return redirect('/admin/home');
}

firstOrCreate()检查是否存在包含该电子邮件的条目,然后获取该条目,否则创建该条目。

此外,如果我想检查身份验证,我会在我的路由中使用'auth'中间件。

Route::get('example', 'ExampleController@checkLogin')->middleware('auth');

这样就不需要进行整个检查:

if (Auth::check()) { ... }
 类似资料:
  • 重定向url的长度显得很长。看起来像是在重演。 https://app.page.link?link=https://app.firebaseapp.com//auth/action?apikey%3xxx%26mode%3dverifyemail%26oobcode%3xxx%26continueurl%3dhttps://www.app.com/?verifyemail%253demail@g

  • 我运行了一个AWS Elastic Beanstalk环境,并设置了AWS SES。我有一个发送和接收电子邮件的电子邮件地址。到现在为止,一直都还不错。然而,发送到作为单个文件存储在我的S3存储桶中。因为它是一般支持的电子邮件地址,所以指向它的消息将由支持团队回复(不能要求支持团队从S3下载单个文件)。我的想法是将电子邮件重定向到发送到其他电子邮件地址。我可以通过AWS SES来实现这一点,还是有

  • 我是Laravel的新手,正在尝试修复电子邮件验证消息。场景是: > 如果我发送空值,验证器会返回一个响应“需要用户电子邮件字段”。 如果我发送一个无效的值,如“my_email_id”[不带@符号],它仍然返回“用户电子邮件字段是必需的”。 如果我发送空值,如“my\u email”_id@domain,它仍然返回“用户电子邮件必须是有效的电子邮件地址。”。 现在,我的问题是如何返回回答“用户电

  • 从逻辑应用中的“通过 Office 365 Outlook 发送电子邮件”连接器配置到 Office 365 的新服务连接在保存时失败,并显示以下错误 - 无法保存逻辑应用程序。客户端有权执行操作“Microsoft/但是,它无权对链接范围“/providers/Microsoft . web/connections/office 365”执行操作“join/action”。 如果我请求第二部分的

  • 当我注册一个用户,或单击“单击此处请求另一个”时,不会发送验证邮件,尽管它的回答是“一个新的验证链接已发送到您的电子邮件地址”。我检查了我的和文件,并使用tinker和

  • 如果不使用JavaScript,那么仅使用Django如何做到这一点呢?