在 Laravel 的视图中声明简单变量

Posted

技术标签:

【中文标题】在 Laravel 的视图中声明简单变量【英文标题】:declaring simple variables in views in Laravel 【发布时间】:2013-07-04 19:09:19 【问题描述】:

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

【问题讨论】:

***.com/questions/13002626/… 可能重复 【参考方案1】:

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

你应该这样做:

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

$a

【讨论】:

谢谢!我不认为你可以在刀片中使用常规的 php 标签。【参考方案2】:

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

    在刀片模板文件中使用传统的 PHP 标记 &lt;?php?&gt;。通过将 符号替换为&lt;?php ?&gt;.blade.php 文件将编译为传统的 php 文件。因此,请随意将此文件作为普通 PHP 文件进行编辑。 扩展刀片语法,以更优雅的方式编写代码,如this answer。但是,刀片引擎在主流 IDE 中仍然不支持,因此如果使用此方案,您的 IDE 中会遇到自动补全和代码提示的困难。

【讨论】:

不是 translate to &lt;?php echo ?&gt; 吗? 将回显您的输入而不作为 html 安全转义。【参考方案3】:

更好的方法可能是:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

【参考方案6】:

这就是我的工作方式

@php($a++)

如果是长代码

@php
     enter your codes here
@endphp

或者你可以使用

<?php a++ ?>

【讨论】:

【参考方案7】:

你应该像@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

【讨论】:

【参考方案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);

【讨论】:

以上是关于在 Laravel 的视图中声明简单变量的主要内容,如果未能解决你的问题,请参考以下文章

laravel compact的用法

1+X web中级 Laravel学习笔记——blade模版

Larave中CSRF攻击

php laravel框架学习笔记 基本工作原理

将数组从 AuthController 传递到 Laravel 5 中的登录视图

Laravel 8 组件 @props 指令不起作用