2017-07-20 2 views
2

Wenn ich in Laravel einen Standardwert von 0 für alle meine Ganzzahlen festgelegt habe, wie kann ich es nur mit dem Standard gehen, wenn die Anfrage null ist?Laravel - Verwenden Sie den Standardwert, wenn die Eingabe null ist

Ich habe versucht:

$property->bedrooms = $request->input('bedrooms', 0); 

Aber es nach wie vor nur als null zu setzen versucht und einen Fehler wirft, wie ich gehe davon aus das ist nur für, wenn der Wert nicht existiert überhaupt nicht.

Natürlich könnte ich gehen:

if($request->bedrooms){ 
    $property->bedrooms = $request->bedrooms; 
}else{ 
    $property->bedrooms = 0; 
} 

... aber das scheint ziemlich ausführlich.

Gibt es eine bessere Lösung, die ich vermisse? Standardwerte sind sorta nutzlos, wenn Sie sowieso immer ein if/else verwenden müssen.

+0

Wenn Sie 'nicht entfernen möchten die ConvertEmptyStringsToNull' Middleware könnte man einfach eine einlinige ternäre Anweisung verwenden, wie zum Beispiel: $ Eigenschaft-> Schlafzimmer = $ Anfrage-> Schlafzimmer?: 0; ' –

+0

Prost Aaron! Ich denke, Rob ist technisch die richtige Antwort, aber diese Kurzschrift ist auch wirklich praktisch. – MitchEff

+0

Ja, ich stimme zu! Nur ein Trick, wenn Sie diese Middleware in anderen Teilen Ihrer Anwendung verwenden müssen :) –

Antwort

1

In Laravel 5.4, fügten sie hinzu, die ConvertEmptyStringsToNull Middleware, die im Wesentlichen des Anfrage- $ überschreibt> Eingang() Standardwert, als ob das Feld in der Anfrage nicht vorhanden ist, wird es auf die Anfrage mit einem Wert von hinzufügen null.

$ request-> Eingang (Feld, Standardwert) wird wieder funktionieren, wenn Sie die Middleware in App auf Kommentar \ Http \ kernel.php

protected $middleware = [ 
     \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
     \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, 
     \App\Http\Middleware\TrimStrings::class, 
     // \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, 
    ]; 
+0

Ahhh ja. Danke dafür, Rob! – MitchEff

Verwandte Themen