25

这可能是一件简单的事情,但我不知道如何在 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 的视图中执行此操作的正确语法是什么?谢谢你。

4

8 回答 8

36

Blade{{ }}会回应你正在做的事情。

你应该这样做:

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

{{$a}}
于 2013-07-07T12:08:31.030 回答
18

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
于 2016-11-11T05:57:10.613 回答
9

这就是我的工作方式

@php($a++)

如果它的长代码

@php
     enter your codes here
@endphp

或者你可以使用

<?php a++ ?>
于 2016-12-24T14:03:30.407 回答
2

您有两种方法可以解决您的问题:

  1. 在您的刀片模板文件中<?php使用传统的 PHP 标记。?>通过将符号替换为 ..blade.php文件将被编译为传统的 php 文件。因此,请随意将此文件作为普通 PHP 文件进行编辑。{{}}<?php ?>
  2. 扩展刀片语法以更优雅的方式编写代码作为这个答案。但是,刀片引擎在主流 IDE 中仍然不支持,因此如果您使用此解决方案,您将遇到自动完成以及 IDE 中的代码提示的困难。
于 2013-07-07T14:56:47.730 回答
1

更好的方法可能是:

@for ($i=0; $i<=count($fans); $i++)
  @if($fans[$i]->fbid==$i)
    Fan Count: {{ $i}}
  @endif
@endfor
于 2014-05-02T22:49:48.533 回答
1

你应该像@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 及更高版本所提到的

@php($a = 0)

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

{{$a}}
于 2017-02-24T12:42:20.357 回答
0

您可以在刀片模板中这样做

{{--*/ $a = 0 or whatever here /*--}} 
于 2016-11-16T12:18:36.420 回答
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);
    }

如果您想获得 16 个字符的加密。

internal_decrypt('your string', 'your secrect key',16);
于 2017-08-12T01:24:29.723 回答