我在Laravel 5.4 Blade视图中具有以下代码:
@php($strVal = $character->Strength)
@php($strMod = 0)
<?php
if ($strVal == 10 || 11) {
$strMod = 0;
} elseif ($strVal == 12 || 13) {
$strMod = 1;
} elseif ($strVal == 14) {
$strMod = 2;
} else {
$strMod = 2;
}
?>
它从MySQL表中获取数据。
$ strVal是表中的一个int。该代码创建了一个名为$ strMod的var,并通过了许多if / elseif语句来查看其含义。
它在网页上显示如下:
<div class="huge charMod">+{{$strMod}}</div>
我的问题是,无论strVar等于什么,它都显示为“ +0”。 strVar工作正常,我可以从数据库中提取它并通过{{$ strVal}}显示它,但是strMod拒绝采用非0的值。
最佳答案
您需要将if check更改为
if ($strVal == 10 || $strVal == 11) {
$strMod = 0;
} elseif ($strVal == 12 || $strVal == 13) {
$strMod = 1;
} elseif ($strVal == 14) {
$strMod = 2;
} else {
$strMod = 2;
}
if ($strVal == 10 || 11)
将始终返回true。如果要检查两个值,则需要再次使用变量== value来指定,如上例所示。