2017-02-25 4 views
1

Ich habe ein Formular. Wenn ein Benutzer das Formular füllt und einreicht, soll es zurücksenden 'Konto erfolgreich erstellt. Ein Aktivierungscode wurde an Ihre Mail gesendet. Wenn sich der Benutzer jedoch mit einer Kontonummer anmeldet, die bereits vergeben ist, sollte er Sie umleiten und sagen: "Kontonummer existiert bereits. Anmeldung.' Dies ist der Code in der Steuerung:So verwenden Sie verschiedene Variablennamen in Ansicht 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.']); 
} 

} 

dies ist der HTML-Code:

<!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> 

wenn ich die Login-Route treffen, die mir die Seite zeigt, es sagt mir Undefined variable: Nachricht. Das ist frustrierend und hält mich zurück. Wenn ich jedoch den @if- und @endif-Code entferne, zeigt die Seite, wenn ich das Formular ausfülle, füge ich den Code vor dem Senden hinzu und es funktioniert einwandfrei, aber wenn ich die Route mit der Blade Extension Syntax ankreuze, sagt es mir undefinierte Variable Botschaft. Plsssss helfen

Antwort

1

Versuchen von

@if($message) 

zu

@if(isset($message)) 

ändern können Sie auch prüfen, ob $message nicht leer oder so ähnlich ist.

+0

Arbeiten Sie perfekt danken sein kann, so so viel Bruder :), im so glücklich –

0

Sie können für $message Existenz unter Verwendung isset($message) überprüfen.

Aber ich sehe auch, dass Sie Ihre App falsch strukturieren. Sie sollten mehr als drei Routen haben hier, aber die, die in Frage kommen:

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

Auf register.show, können Sie die Registrierung angezeigt bilden. Senden Sie das Formular an POST an register.store.

Wenn Fehler register.store erkannt wird, Umleitung zurück zu register.showreturn redirect('login.show')->with('message', 'Account number already exists. Login.'); mit

Auf login.show ermitteln für $message mit

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

Bitte versuchen Sie dies in Ihrem Controller:

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

oder in Ihrem Datei anzeigen:

@if(isset($message)) 
// your code 
@endif 
0

Ich würde vorschlagen, die Klinge Helfer or von https://laravel.com/docs/5.4/bladeHallend Daten unter Verwendung Wenn es

{{ $name or 'Default' }} 

gibt, die {{ $message or '' }}

Verwandte Themen