Объявление простых переменных в представлениях в Laravel

Это, наверное, простая вещь, но я не знаю, как объявлять и увеличивать целочисленную переменную в представлении в Laravel.

У меня есть пара циклов foreach, которые я использую:

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

         @endif
    @endforeach
  @endforeach

Я хотел бы добавить целочисленную переменную $a, которая подсчитывает количество раз, которое она делает через оператор if. Как:

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

{{$a}}

Каков правильный синтаксис для этого в представлении в Laravel? Спасибо.

Ответы

Ответ 1

Blade {{ }} будет повторять то, что вы делаете.

Вы должны сделать это следующим образом:

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

{{$a}}

Ответ 2

Laravel 5.2 и выше

@php ($a = 0)

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

{{$a}}

Или в блоке

@php
$a = 0
@endphp

Ответ 3

вот как это работает со мной

@php($a++)

и если его длинный код

@php
     enter your codes here
@endphp

или вы можете использовать

<?php a++ ?>

Ответ 4

У вас есть два подхода к решению вашей проблемы:

  • Используйте традиционный тег PHP <?php и ?> в файле шаблона вашего клинка. Файл .blade.php будет скомпилирован в традиционный php файл, заменив символ {{}} на <?php ?>. Поэтому не стесняйтесь редактировать этот файл как обычный PHP файл.
  • Расширьте синтаксис лезвия, чтобы написать код более элегантным способом, чем этот ответ. Тем не менее, механизм лезвия по-прежнему не поддерживается в основной среде IDE, поэтому при использовании этого решения вы столкнетесь с трудностью автозаполнения, а также подсказкой кода в своей среде IDE.

Ответ 5

Лучше aproach может быть:

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

Ответ 6

Вы можете сделать это так в шаблонах кликов

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

Ответ 7

Вы должны использовать это, как упоминалось в The @Patrick Reck, например

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

{{$a}}

ИЛИ

как упомянуто @Moode Osman для Laravel 5.2 и Above

@php($a = 0)

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

{{$a}}

Ответ 8

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

Если вы хотите получить 16-символьное шифрование.

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