在 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 标记
<?php
和 ?>
。通过将
符号替换为<?php ?>
,.blade.php
文件将编译为传统的 php 文件。因此,请随意将此文件作为普通 PHP 文件进行编辑。
扩展刀片语法,以更优雅的方式编写代码,如this answer。但是,刀片引擎在主流 IDE 中仍然不支持,因此如果使用此方案,您的 IDE 中会遇到自动补全和代码提示的困难。
【讨论】:
不是 translate to <?php echo ?>
吗?
将回显您的输入而不作为 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 的视图中声明简单变量的主要内容,如果未能解决你的问题,请参考以下文章
1+X web中级 Laravel学习笔记——blade模版