2017-02-25 82 views
1

我有一個表單。如果用戶創建填寫表單並提交,則意味着回覆「成功創建帳戶」。激活碼已發送到您的郵件。'但是如果用戶註冊了已經使用的帳號,它應該重定向你說'帳號已經存在。登錄。'這是在控制器代碼:如何在視圖中使用不同的變量名稱laravel

protected function storuser() 
{ 
$account_number = $request['accountnumber']; 
$user = DB::table('users')->where('account_number', $account_number)->first(); 
if ($user==NULL) { 
return view('login', ['message'=>'Account created successfully. An activation code has been sent to your mail.']) 
}else{ 
return view('login', ['message'=>'Account number already exists. Login.']); 
} 

} 

這是html代碼:

<!DOCTYPE html> 
<html> 
<head> 
<title>this is a title</title> 
</head> 
<body> 
<form action="login" method="GET"> 
@if($message) 
<div class="alert alert-info"> 
<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> 
<ul> 
<li>{{$message}}</li> 
</ul> 
</div> 
@endif 
<input type="text" name="accountnumber"> 
<input type="submit" value="submit"> 
</form> 
</body> 

每當我打的登錄路由這說明我的頁面,它告訴我未定義變量:消息。這令人沮喪,讓我失望。但是,當我刪除@if和@endif代碼的頁面顯示,然後當我填寫表單時,我提交之前添加了代碼,它完美的作品,但是當我用刀片擴展語法打到路徑時,它告訴我未定義的變量信息。 Plsssss幫助

回答

1

嘗試從

@if($message) 

改變

@if(isset($message)) 

您還可以檢查是否$message不是空的或類似的東西。

+0

作品完美地謝謝你這麼多的兄弟:),即時通訊等等快樂 –

0

您可以使用isset($message)檢查$message存在。

但我也看到你錯誤地構造你的應用程序。你應該在這裏超過3條路線,但有問題的是:

  1. register.show
  2. register.store
  3. login.show

register.show,就顯示註冊形成。在表單提交後,您POST到register.store

如果檢測到錯誤register.store,使用return redirect('login.show')->with('message', 'Account number already exists. Login.');

重定向回register.showlogin.show使用

@if(session('message')) 
    {{session('message')}} 
@endif 
2

請試試這個在您的控制器檢測爲$message

$message = 'Account created successfully. An activation code has been sent to your mail.'; 
return view('login', compact('message')); 

或在您的查看文件:

@if(isset($message)) 
// your code 
@endif 
相關問題