2014-12-26 13 views
22

Ich bin ziemlich neu in Laravel und Blade-Templat.
Kann jemand mir helfen, mir zu zeigen, wie man das macht?number_format Methode Verwendung in Laravel

Ich habe eine Ansicht wie folgt aus:

@foreach ($Expenses as $Expense) 
    <tr> 
     <td>{{{ $Expense->type }}}</td> 
     <td>{{{ $Expense->narration }}}</td> 
     <td>{{{ $Expense->price }}}</td> 
     <td>{{{ $Expense->quantity }}}</td> 
     <td>{{{ $Expense->amount }}}</td>                
    </tr> 
@endforeach 

Ich möchte die $Expense->price und $Expense->amount formatiert werden.
Ich versuchte es auf der $Expense->amount als number_format($Expense->amount) aber es hat nicht funktioniert mit.

+2

'<(Menge php echo number_format $ Expense-)?>; ?> 'wäre eine Option; aber ' {{number_format ($ Expense-> Menge, 2)}}' sollte –

+0

Arbeit habe ich versucht, beide, keiner arbeitet –

+0

Also, was tun Sie eigentlich im Markup sehen? –

Antwort

44

sollte diese Arbeit:

<td>{{ number_format($Expense->price, 2) }}</td> 
+0

Vielleicht müssen Sie auch auf Typcasting es hier https://stackoverflow.com/questions/6542403/number-format-causes-error-a-non-well-formed-numeric-value-encountered sehen, damit es richtig funktioniert – nitigyan

5

Wenn Sie Eloquent verwenden, sollten Sie in Ihrem Modell:

public function getPriceAttribute($price) 
{ 
    return $this->attributes['price'] = sprintf('U$ %s', number_format($price, 2)); 
} 

Wo Preis Attribut ist Ihr Feld auf Datenbank erhalten. get Etwas Attribut.

+2

Persönlich Mit dieser Antwort würde ich 'sprintf' in eine wiederverwendbare Komponente wie' App \ Localization \ Currency :: format ($ price) 'verschieben, falls es ohne zu viel Abstraktion flexibel sein soll. Aber so oder so, das ist ein Punkt auf Antwort – ash

+0

Dies sollte die akzeptierte Antwort sein. Dies ist eine viel bessere OOP-Implementierung. Die akzeptierte Antwort ist in Ordnung, aber wenn sich irgendetwas in der App ändert, ist es ein Albtraum, Anpassungen vorzunehmen. – zmonteca

3

Wenn Sie Eloquent die beste Lösung verwenden, ist:

public function getFormattedPriceAttribute() 
{ 
    return number_format($this->attributes['price'], 2); 
} 

So, jetzt müssen Sie formattedPrice im Modell anhängen und Sie beide verwenden können, Preis (in seinen ursprünglichen Zustand) und formattedPrice.

Verwandte Themen