2016-10-20 2 views
0

Wie hängt man ein Array mit $ i in Blade an?

model:

protected $fillable = [ 
    'positive1', 'positive2', 'positive3', 'positive4', 'positive5' 
]; 

blade: // Befor diese Schleife ist: @foreach($commentHotel as $value)

@for($i = 1; $i <= 5; $i++) 
    @if($value -> positive[$i] != '') 
    <li class="clearfix"><i class="icon icon-arrow-top"></i> <span>{{ $value -> positive[$i] }}</span></li> 
    @endif 
@endfor 

Dieser Code ist Fehler: $value -> positive[$i]. Ich würde drucken möchten:

$value -> positive1 
$value -> positive2 
$value -> positive3 
$value -> positive4 
$value -> positive5 

Wie korrigiere ich?

Antwort

1

Statt $value -> positive[$i], schreiben $value->getAttribute("positive$i")

+2

Dieses Beispiel verwendet eine Eloquent-Methode, daher ist es praktisch zu wissen. Wenn Sie jedoch mit Objekten und Variablennamen arbeiten, können Sie auch etwas wie '$ value -> {" positive {$ i} "}' – Dwight

+0

@Dwight tun. Vielen Dank, bitte geben Sie die Antwort in stackoverflow ein, ich möchte ... – mySun

2

NXU dem Beispiel praktisch ist, weil es Ihnen zeigt, wie ein Modellattribut zuzugreifen, wenn Eloquent verwenden. Es gibt jedoch eine Möglichkeit, auf dynamische Methoden- und Eigenschaftsnamen in PHP zuzugreifen.

// Access a dynamic property name 
$value->{"positive{$i}"} 

// Call a dynamic method name 
$value->{$functionName}() 

die {} Klammern ermöglicht es Ihnen, einen dynamischen Wert zu interpolieren.