php – Laravel – 检查帐户何时创建

php – Laravel – 检查帐户何时创建,第1张

概述在我正在构建的网站上,当访问者加载页面时会自动生成帐户.创建帐户时,将要求新用户通过创建模态窗口来选择用户名,当用户提交新用户名时,数据将被发送回服务器并且模式将关闭. 所以现在唯一的问题是,我不知道如何在生成新帐户时调用此模态窗口.现在它每次都会显示页面重新加载,但应该发生的事情是仅在生成帐户之后. 所以这应该在制作帐户时调用,但只有在发生时才会调用: $('#i-modal').foundat 在我正在构建的网站上,当访问者加载页面时会自动生成帐户.创建帐户时,将要求新用户通过创建模态窗口来选择用户名,当用户提交新用户名时,数据将被发送回服务器并且模式将关闭.

所以现在唯一的问题是,我不知道如何在生成新帐户时调用此模态窗口.现在它每次都会显示页面重新加载,但应该发生的事情是仅在生成帐户之后.

所以这应该在制作帐户时调用,但只有在发生时才会调用:

$('#i-modal').foundation('reveal','open');

创建帐户时,会发生这种情况.请求被发送到/ createuser

UserController的:

public function createuser(){    $newUser = new User;    $newUser->username = 'user-'.Helpers::randomLowerCase(4);    $newUser->save();    // Check if user isn't logged in yet    if (!Auth::check()) {        Auth::login($newUser);    } else {       // ...    }    // Return the user home    return Redirect::action('HomeController@showHome');}

那么我该如何做,只调用$(‘#i-modal’).foundation(‘reveal’,’open’);什么时候创建帐户?

解决方法 一种方法可以是在http会话中存储用户输入的用户名,并且可能还自动将用户登录到系统.然后,如果页面重新加载,则UserController会在会话中检查是否已存储用户名或用户是否已登录.根据结果显示模式或不显示模式.

因此,当首次加载页面时,您可以执行以下步骤(然后是未经测试的代码,作为可以放置代码的每个部分的示例),

1.检查会话(PHP http session,egsession_start(); if(isset($_ SESSION [$username])){..)以查看用户名是否存在或Auth :: check().

PHP

Route::get('checkUser','UserController@checkUser');Route::get('createuser/{username}','UserController@createuser');class UserController extends BaseController {public function checkUser(){      session_start();      if(isset($_SESSION["username"])){/*or use something like Auth::check()*/        return Response::Json(array('exists' => 'true'));/*or redirect e.g.  return Redirect::action('HomeController@showHome');*//*or render a vIEw e.g. return VIEw::make('user.page',array('username' => $username));*/          }else{            return Response::Json(array('exists' => 'false'));          }    }    ....

1.1如果存在,请不要执行显示基础模态和欢迎用户的Js代码.

1.2如果它不存在,执行Js代码并显示模态窗口,要求用户登录.

Js(或通过视图从您的PHP代码输入,例如从控制器返回VIEw :: make(‘user.page’,array(‘username’=> $username));)

$.AJAX({       url: "checkUser"        success: function(data) {             if(!data.exists) {                $('#i-modal').foundation('reveal','open');            }else{                /*set any content e.g. welcome user*/            }        }    });

1.2.1如果用户输入现有用户名或生成新用户名,请登录用户并将用户名存储在会话中.

PHP

....Route::get('createuser/{username}','UserController@createuser');class UserController extends BaseController {..../*your code slightly modifIEd*/  public function createuser($username){  // Check if user isn't logged in yet  if (!Auth::check()/*&& if persistence is used,which is best to actually use it to persist usernames,check if the username is available*/) {     $newUser = new User;     //$newUser->username = 'user-'.Helpers::randomLowerCase(4);     $newUser->username=$username;     $newUser->save();     Auth::login($newUser);  } else {     return Response::Json(array('created' => 'false'));   /* or  return Redirect::action('HomeController@loginFailed');*/  }  // Return the user home  return Redirect::action('HomeController@showHome');}....

Js

$.AJAX({           url: "createuser",data:{usernae:the_username_from_modal}            success: function(data) {                 if(!data.created) {                    /*if the redirection is not handled by the controller,handle the Failed login/registration of existing username*/                }            }        });

同样在您的代码中,您应该将用户名存储到持久层,以便检查现有用户名,允许用户使用他们现有的用户名,并恢复/检索您可能在应用程序中持久保存的任何类型的状态或数据.

总结

以上是内存溢出为你收集整理的php – Laravel – 检查帐户何时创建全部内容,希望文章能够帮你解决php – Laravel – 检查帐户何时创建所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1243043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存