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">×</a>
<ul>
<li>{{$message}}</li>
</ul>
</div>
@endif
<input type="text" name="accountnumber">
<input type="submit" value="submit">
</form>
</body>
每当我点击向我显示页面的登录路线时,它会告诉我Undefined variable:message。这令人沮丧,让我退缩。然而,当我删除页面显示的@if和@endif代码时,然后当我填写表单时,我在提交之前添加代码并且它完美地工作但是当我使用刀片扩展语法在那里时,它告诉我未定义的变量信息。 Plsssss帮助
答案 0 :(得分:2)
请在您的控制器中尝试:
$message = 'Account created successfully. An activation code has been sent to your mail.';
return view('login', compact('message'));
或在您的视图文件中:
@if(isset($message))
// your code
@endif
答案 1 :(得分:1)
尝试从
更改@if($message)
到
@if(isset($message))
您还可以检查$message
是否为空或类似。
答案 2 :(得分:0)
您可以使用$message
检查isset($message)
是否存在。
但我也看到你错误地构建了你的应用程序。你应该在这里有超过3条路线,但有问题的路线是:
在register.show
上显示注册表单。在表单提交时,您将POST到register.store
。
如果检测到错误register.store
,请使用register.show
return redirect('login.show')->with('message', 'Account number already exists. Login.');
login.show
使用
$message
@if(session('message'))
{{session('message')}}
@endif
答案 3 :(得分:0)
我建议使用https://laravel.com/docs/5.4/blade中的刀片助手or
如果存在则回应数据
{{ $name or 'Default' }}
可以是{{ $message or '' }}