2017-02-25 45 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 
相关问题