所以现在唯一的问题是,我不知道如何在生成新帐户时调用此模态窗口.现在它每次都会显示页面重新加载,但应该发生的事情是仅在生成帐户之后.
所以这应该在制作帐户时调用,但只有在发生时才会调用:
$('#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 – 检查帐户何时创建所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)