2013-07-07 8 views
16

Questa è probabilmente una cosa semplice, ma non so come dichiarare e incrementare una variabile intera in una vista in Laravel.dichiarazione di variabili semplici nelle viste in Laravel

Ho un paio foreach loop che sto usando:

@foreach($fans as $fan) 
    @foreach ($array as $x) 
     @if($fan->fbid==$x) 

     @endif 
    @endforeach 
    @endforeach 

vorrei gettare in un intero variabile $ a, che conta il numero di volte in cui lo fa attraverso l'istruzione if. Come:

$a=0; 
@foreach($fans as $fan) 
     @foreach ($array as $x) 
      @if($fan->fbid==$x) 
      $a++;     
      @endif 
     @endforeach 
    @endforeach 

{{$a}} 

Qual è la sintassi corretta per fare questo in una vista in laravel? Grazie.

+2

Eventuali duplicati di http://stackoverflow.com/questions/13002626/laravels-blade-how-can-i-set-variables-in-a-template/17176876#17176876 –

risposta

28

La lama {{ }} farà eco a quello che stai facendo.

Si dovrebbe fare in questo modo:

<?php $a = 0; ?> 
@foreach($fans as $fan) 
     @foreach ($array as $x) 
      @if ($fan->fbid == $x) 
       <?php $a++; ?>     
      @endif 
     @endforeach 
@endforeach 

{{$a}} 
+0

Grazie! Non pensavo che potessi usare normali tag php su blade. – user1072337

2

Si hanno due approcci per risolvere il problema:

  1. Usa tag PHP tradizionale <?php e ?> nel file di modello di lama. Un file .blade.php sarà compilato in un file php tradizionale sostituendo il simbolo {{}} tramite <?php ?>. Pertanto, sentiti libero di modificare questo file come un normale file PHP.
  2. Estendere la sintassi del blade per scrivere il codice in un modo più elegante come this answer. Tuttavia, il motore blade non è ancora supportato nei principali IDE, quindi se utilizzi questa soluzione avrai la difficoltà di completare automaticamente e il suggerimento sul codice nel tuo IDE.
+0

Non '{{}} tradurre in '? –

+0

'{{}}' riprodurrà l'input ** senza ** eseguendo l'escape come HTML sicuro. –

1

Un aproach migliore potrebbe essere:

@for ($i=0; $i<=count($fans); $i++) 
    @if($fans[$i]->fbid==$i) 
    Fan Count: {{ $i}} 
    @endif 
@endfor 
6

laravel 5.2 e Sopra

@php ($a = 0) 

@foreach($fans as $fan) 
     @foreach ($array as $x) 
      @if($fan->fbid==$x) 
       @php ($a++)     
      @endif 
     @endforeach 
    @endforeach 

{{$a}} 

O nel Blocco

@php 
$a = 0 
@endphp 
0

si può fare in questo modo nei modelli blade

{{--*/ $a = 0 or whatever here /*--}} 
5

questo è come funziona con me

@php($a++) 

e se il suo codice lungo

@php 
    enter your codes here 
@endphp 

oppure è possibile utilizzare

<?php a++ ?> 
+0

grazie, mi hai educato :) heheh –

0

si dovrebbe usare questo come citato da The @Patrick Reck come

<?php $a = 0; ?> 
@foreach($fans as $fan) 
     @foreach ($array as $x) 
      @if ($fan->fbid == $x) 
       <?php $a++; ?>     
      @endif 
     @endforeach 
@endforeach 

{{$a}} 

O

come indicato dalla @Moode Osman per laravel 5.2 e sopra

@php($a = 0) 

@foreach($fans as $fan) 
     @foreach ($array as $x) 
      @if ($fan->fbid == $x) 
       @php ($a++)     
      @endif 
     @endforeach 
@endforeach 

{{$a}} 
0
function internal_decrypt($string, $key,$character) { 

     $result = ''; 
     $string = base64_decode($string); 
     for($i=0; $i<$character; $i++) { 
      $char = substr($string, $i, 1); 
      $keychar = substr($key, ($i % strlen($key))-1, 1); 
      $char = chr(ord($char)-ord($keychar)); 
      $result.=$char; 
     } 
     return $result; 
    } 



function internal_encrypt($string, $key,$character) { 
     $key='Bangladesh is a big country'; 
     $result = ''; 
     for($i=0; $i<$character; $i++) { 
      $char = substr($string, $i, 1); 
      $keychar = substr($key, ($i % strlen($key))-1, 1); 
      $char = chr(ord($char)+ord($keychar)); 
      $result.=$char; 
     } 
     return base64_encode($result); 
    } 

Se si desidera ottenere 16 crittografia carattere.

internal_decrypt('your string', 'your secrect key',16); 
Problemi correlati