déclaration des variables simples dans les 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 foreach que j'utilise:

@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 le fait à travers la déclaration 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 faire cela dans une vue de Laravel? Remercier.

19
demandé sur felipsmartins 2013-07-07 10:47:23

8 réponses

La Lame {{ }} fera l'écho de ce que vous êtes en train de faire.

Vous devez faire comme ceci:

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

{{$a}}
31
répondu Patrick Reck 2016-10-06 08:56:19

Laravel 5.2 et au-Dessus de

@php ($a = 0)

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

{{$a}}

Ou dans le Bloc

@php
$a = 0
@endphp
11
répondu Nadeem0035 2016-11-11 05:57:10

c'est la façon dont il travaille avec moi

@php($a++)

et si son code long

@php
     enter your codes here
@endphp

ou vous pouvez utiliser

<?php a++ ?>
8
répondu Moode Osman 2017-09-12 14:29:46

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

  1. utilisez la balise PHP traditionnelle <?php et ?> dans votre lame fichier de modèle. .blade.php fichier compilé à un fichier php traditionnel en remplaçant le {{}} symbole par <?php ?>. Par conséquent, n'hésitez pas à éditer ce fichier comme un fichier PHP normal.
  2. Étendre la lame de la syntaxe pour écrire le code d'une façon plus élégante que cette réponse. Cependant, la lame moteur est toujours pas pris en charge dans L'IDE majeur donc vous allez rencontrer la difficulté de l'auto complète ainsi que le code indice dans votre IDE si vous utilisez cette solution.
2
répondu Hieu Le 2017-05-23 12:18:26

Une meilleure approche pourrait être:

@for ($i=0; $i<=count($fans); $i++)
  @if($fans[$i]->fbid==$i)
    Fan Count: {{ $i}}
  @endif
@endfor
1
répondu Emiliano Díaz 2014-05-02 22:49:48

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

{{--*/ $a = 0 or whatever here /*--}} 
0
répondu Hashan Kanchana 2016-11-16 12:18:36

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}}

OR

@php($a = 0)

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

{{$a}}
0
répondu Sanchit Gupta 2017-02-24 12:42:20
 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 de 16 caractères.

internal_decrypt('your string', 'your secrect key',16);
0
répondu jewelhuq 2017-08-12 01:24:29