2017-12-20 15 views
1

Ich möchte eine Nachricht in meinem Blade anzeigen. Wenn meine Adresse, Name oder Nummer leer ist, sagen Sie, dass diese Felder leer sind. Bitte füllen Sie sie aus, wenn sie bereits gefüllt sind alles anzeigen.Zeige eine Nachricht, wenn Daten null ist. Laravel

Derzeit mochte ich das, aber in der blade.php. Zuvor hatte ich schon etwas ähnliches gefragt aber dieses mal möchte ich eine Nachricht zeigen. Ich habe versucht, der Frage zu folgen, die ich gestellt habe, aber aus irgendeinem Grund wird weiterhin die Meldung "bitte füllen sie" angezeigt, obwohl meine Daten Werte in der Datenbank enthalten.

Redirect to page when value is null in another table laravel

Hier ist mein Code:

<?php 
    $additional_info = DB::table('additional_informations') 
          ->whereNull('address') 
          ->orWhereNull('name') 
          ->orWhereNull('number') 
          ->get(); 
     if($additional_info->count()) 
     echo "test"; 

?> 
+0

Beides ist gut, ich möchte nur Ihnen sagen Ser, um das Formular @JamesRiady zu füllen – Dkna

+0

Das Problem ist jetzt, dass die falsche Nachricht angezeigt wird, so bin ich unsicher, was zu tun ist – Dkna

+1

lässt über Ihren Code nachdenken. Wenn Sie 2 Datensätze in Ihrer Tabelle zusätzliche Informationen haben, mit null Adresse .. wenn Sie es zählen ... es wird count = 2 .. wenn count> 0 zeigen Sie dann die Nachricht –

Antwort

2

Für eine Route wie folgt aus:

Route::get('/userAddInfo/{id}/AddInfo','[email protected]'); 

Sie können die Benutzer-ID in der Methode als Parameter erhalten dann in der Abfrage wie folgt verwendet werden:

public function AddInfo($id) { 
    $additional_info = DB::table('additional_informations') 
          ->where('user_id', $id) 
          ->where(function ($query) { 
            $query->whereNull('EC_address') 
              ->orWhereNull('EC_name') 
              ->orWhereNull('EC_number'); 
           }) 
          ->get(); 
    return view('AddVerificationInfo',compact('id','additional_info')); 
} 

Und in die Ansicht:

@if($additional_info->count()) 
    "Please fill this up" 
@endif 
0

Sie Ihre Logik in einen Controller bewegen sollte, dann eine Variable wie $noAdditionalInfo zur Ansicht übergeben

Dann können Sie Blade-Tags verwenden:

@if($noAdditionalInfo) 
    <!-- html goes here --> 
@endIf 
+0

Hallo Ich habe Ihre Methode versucht, aber es immer noch die Nachricht zurück. Könnte ich in der Anfrage etwas falsch gemacht haben? – Dkna

3

Angenommen yo u arbeiten an der index.blade.php Seite hier, wie es

InformationController geht - Regler

public function index($id) { 
     $additional_info = DB::table('additional_informations') 
          ->whereNull('address') 
          ->orWhereNull('name') 
          ->orWhereNull('number') 
          ->where('id', '=', $id) 
          ->first(); 
      return view('index', compact('id','additional_info ')); 

} 

index.blade.php - Blick

<div> 
    @if(count($additional_info) > 0) 
     Here are the rows that has Null values: <br/> 
      Please go back and fill up the values of 
      @if($additional_info->EC_name == null) 
       EC_name 
      @endif 
      @if($additional_info->EC_relationship== null) 
       EC_relationship 
      @endif 
      @if($additional_info->EC_address== null) 
       EC_address 
      @endif 
      // and so on. There is a shorter way but I'm not in my laptop right now. But this should work fine 

    @else 
     {{ $id }} has no Null data found 
    @endif 
</div> 

Sag mir, wenn Sie weitere Hilfe benötigen auf diesem Teil. Prost

+0

kann ich wissen, wie die Struktur Ihres Arrays/Objekts ist. Prinzipiell funktioniert es bereits, nur das gewünschte Objekt wird nicht angezeigt versuchen, dann fügen Sie das Ergebnis hier –

+0

fügen Sie es unter dem "Data Found". Es wird ein Array zurückgeben oder enthält die Daten, die von Ihrer Abfrage zurückgegeben wurden –

+0

Bro, setzen Sie das Ergebnis hier.Ich weiß, dass es 4 verschiedene Ergebnisse zurückgibt, wir müssen die Struktur Ihrer Daten kennen, damit wir das Feld ausgeben können, um Sie wissen zu lassen, welche die leeren sind –

1
/* In controller */ 

$additional_info = DB::table('additional_informations') 
          ->whereNull('address') 
          ->orWhereNull('name') 
          ->orWhereNull('number') 
          ->get()->toArray(); // to convert output into array 

/* In view (blade template) */ 

@if(!empty($additional_info)) 

echo "<pre>"; 
print_r($additional_info); 

@else 

echo "No data found"; 

@endif 
+0

Hallo, Ich habe versucht, Ihren Code, aber nichts passiert – Dkna

+0

Ändern Sie den Code wie gezeigt –

+0

Äh entschuldigen Sie, aber Ihr Code sieht gleich aus – Dkna

Verwandte Themen