web-dev-qa-db-fra.com

déclarer des variables simples dans des vues de Laravel

C'est probablement une chose simple, mais je ne sais pas comment déclarer et incrémenter une variable entière dans une vue dans Laravel. 

J'ai quelques boucles que je me sers de:

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

         @endif
    @endforeach
  @endforeach

Je voudrais ajouter une variable entière $ a, qui compte le nombre de fois qu’elle passe dans l’instruction if. Comme:

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

{{$a}}

Quelle est la syntaxe appropriée pour effectuer cela dans une vue dans Laravel? Je vous remercie.

20
user1072337

La lame {{ }} fera écho à ce que vous faites.

Vous devriez le faire comme ça:

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

{{$a}}
33
Patrick Reck

Laravel 5.2 et plus 

@php ($a = 0)

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

{{$a}}

Ou en bloc 

@php
$a = 0
@endphp
12
Nadeem0035

voici comment ça marche avec moi

@php($a++)

et si son code long

@php
     enter your codes here
@endphp

ou vous pouvez utiliser

<?php a++ ?>
9
Moode Osman

Vous avez deux approches pour résoudre votre problème:

  1. Utilisez les balises PHP traditionnelles <?php et ?> dans le fichier de modèle de votre lame. Un fichier .blade.php sera compilé dans un fichier php traditionnel en remplaçant le symbole {{}} par <?php ?>. Par conséquent, n'hésitez pas à éditer ce fichier en tant que fichier normal PHP.
  2. Étendre la syntaxe de la lame pour écrire le code de manière plus élégante sous la forme cette réponse . Cependant, le moteur de lame n'est toujours pas pris en charge dans la version majeure IDE. Vous devrez donc faire face à la difficulté de la saisie semi-automatique ainsi que du conseil de code dans votre IDE si vous utilisez cette solution.
2
Hieu Le

Une meilleure approche pourrait être:

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

Vous devriez utiliser ceci comme mentionné par le @Patrick Reck comme

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

{{$a}}

OU

comme mentionné par @Moode Osman pour Laravel 5.2 et plus 

@php($a = 0)

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

{{$a}}
0
Sanchit Gupta
 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);
    }

Si vous voulez obtenir un cryptage à 16 caractères.

internal_decrypt('your string', 'your secrect key',16);
0
jewelhuq

Vous pouvez le faire comme ceci dans les modèles de lame

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