Php 在@foreach循环中使用变量时,如何检查该变量是否已定义
我试图得到一些澄清,因为我尝试了不同的方法,但似乎对我不起作用 我有这样一个foreach循环:Php 在@foreach循环中使用变量时,如何检查该变量是否已定义,php,laravel,Php,Laravel,我试图得到一些澄清,因为我尝试了不同的方法,但似乎对我不起作用 我有这样一个foreach循环: @foreach($mods as $key => $value) <tr class="table-tr draggable" data-id="{!!$value->id!!}" style="background-color: {{$value->mod_colour}}; color: {{$value->mod_text_col
@foreach($mods as $key => $value)
<tr class="table-tr draggable" data-id="{!!$value->id!!}" style="background-color: {{$value->mod_colour}}; color: {{$value->mod_text_colour}};">
<!-- This creates the Mod -->
<td class="startTime"></td>
<td class="endTime"></td>
<td class="duration">{{ $value->mod_duration }}</td>
<td class="intent">{{ $value->mod_intent }}</td>
<td class="module">
@if ($value->mod_module != null)
{{ $value->mod_module }}
@else
<table class="table-bordered" style="width:100%; text-align: center; color: white;">
@for ($i = 1; $i <= $value->mod_team; $i++)
<td style="padding:10px;">Team {{ $i }}</td>
@endfor
</table>
@endif
</td>
<td class="output">{{ $value->mod_output }}</td>
<td class="input">{{ $value->mod_input }}</td>
<td class="logistics">{{ $value->mod_logistics }}</td>
<td>
<a class="btn btn-small btn-info" style="margin:auto; margin-top: 10px; margin-bottom: 10px; margin-left:10px; margin-right:10px; display:block;" href="" data-target="#modal-edit-mod{{ $value->id }}" data-toggle="modal" id="modal-edit">Edit</a>
</td>
</tr>
@endforeach
@foreach($mods as$key=>$value)
{{$value->mod_duration}
{{$value->mod_intent}
@如果($value->mod_module!=null)
{{$value->mod_module}
@否则
@对于($i=1;$i模块团队;$i++)
小组{{$i}
@结束
@恩迪夫
{{$value->mod_output}
{{$value->mod_input}
{{$value->mod_logistics}
@endforeach
我面临的问题是,当数据库中没有mod,因此没有任何内容传递给$value变量时,页面将抛出“未定义变量:value”错误。我试图实现的是创建某种catch语句,如果没有定义值,那么它将默认为“createnewmod”屏幕或模式。我尝试了以下方法:
@foreach($mods as $key => $value)
@if($value != null)
<tr class="table-tr draggable" data-id="{!!$value->id!!}" style="background-color: {{$value->mod_colour}}; color: {{$value->mod_text_colour}};">
<!-- This creates the Mod -->
<td class="startTime"></td>
<td class="endTime"></td>
<td class="duration">{{ $value->mod_duration }}</td>
<td class="intent">{{ $value->mod_intent }}</td>
<td class="module">
@if ($value->mod_module != null)
{{ $value->mod_module }}
@else
<table class="table-bordered" style="width:100%; text-align: center; color: white;">
@for ($i = 1; $i <= $value->mod_team; $i++)
<td style="padding:10px;">Team {{ $i }}</td>
@endfor
</table>
@endif
</td>
<td class="output">{{ $value->mod_output }}</td>
<td class="input">{{ $value->mod_input }}</td>
<td class="logistics">{{ $value->mod_logistics }}</td>
<td>
<a class="btn btn-small btn-info" style="margin:auto; margin-top: 10px; margin-bottom: 10px; margin-left:10px; margin-right:10px; display:block;" href="" data-target="#modal-edit-mod{{ $value->id }}" data-toggle="modal" id="modal-edit">Edit</a>
</td>
</tr>
@else
<p>No mods!</p>
@endif
@endforeach
@foreach($mods as$key=>$value)
@如果($value!=null)
{{$value->mod_duration}
{{$value->mod_intent}
@如果($value->mod_module!=null)
{{$value->mod_module}
@否则
@对于($i=1;$i模块团队;$i++)
小组{{$i}
@结束
@恩迪夫
{{$value->mod_output}
{{$value->mod_input}
{{$value->mod_logistics}
@否则
没有mods
@恩迪夫
@endforeach
在这里,它将检查$value变量是否为null,但这并没有起作用。我也尝试了->isEmpty()方法,但它仍然返回未定义的变量error
我想要得到的帮助是一个指针,指向创建@if/@else语句的最佳方法,它可以检查$value变量是否有值,或者是否有更好的方法来实现我的目标
谢谢大家! 要检查是否定义了变量,请使用
isset()
,例如:
if(isset($value)){
echo $value;
}
要检查变量是否已定义,请使用
isset()
,例如:
if(isset($value)){
echo $value;
}
您可以使用isset()
和empty()
或
@foreach($mods as $key => $value)
@if(!empty($value))
您可以使用isset()
和empty()
或
@foreach($mods as $key => $value)
@if(!empty($value))
您应该使用isset($value)检查变量是否已设置
在这种情况下,您还可以使用这两种方法来检查变量是否已设置且不为空
if(isset($value)) && is empty($value))
{
\\ Your Code
}
您应该使用isset($value)检查变量是否已设置
在这种情况下,您还可以使用这两种方法来检查变量是否已设置且不为空
if(isset($value)) && is empty($value))
{
\\ Your Code
}
更清楚地说,关于变量定义与否的问题是不同的,变量是否为null,还有不同的检查方法 我给你举个小例子
//创建空变量并用null填充它//'/0
$empty=null;//我将其设置为空
//我们创建了另一个变量notEmpty
$notEmpty='notEmpty';
if(空($empty)){
echo“Empty”;//如果我们运行它,它将echo Empty
}
如果(空($notEmpty)){
echo“Empty”;//未调用
}否则{
echo“Not Empty”;//已调用
}
//现在检查变量是否已定义
if(isset($otherVar)){
回声“定义”;
}否则{
回声“未定义”;
}
正如您所看到的,对于您的问题,您可以从以下两种方法中进行选择:-D为了更清楚地说明,变量定义与否的问题是不同的,变量是否为空,还有不同的检查方法 我给你举个小例子
//创建空变量并用null填充它//'/0
$empty=null;//我将其设置为空
//我们创建了另一个变量notEmpty
$notEmpty='notEmpty';
if(空($empty)){
echo“Empty”;//如果我们运行它,它将echo Empty
}
如果(空($notEmpty)){
echo“Empty”;//未调用
}否则{
echo“Not Empty”;//已调用
}
//现在检查变量是否已定义
if(isset($otherVar)){
回声“定义”;
}否则{
回声“未定义”;
}
正如您所看到的,您可以从这两种方法中进行选择:-D您可以使用isset()方法
比如:
if (isset($var)) {}
如果设置了$var,则该方法返回true,否则返回false
祝你好运 您可以使用isset()方法
比如:
if (isset($var)) {}
如果设置了$var,则该方法返回true,否则返回false
祝你好运 您可以在laravel中执行此操作。我会检查$mods的结果,查看其中是否有任何内容,然后在需要时执行:
@if(is_null($mods))
//its null, do this code
@else
your current code if a var is found
@endif
你可以在拉威尔做到这一点。我会检查$mods的结果,查看其中是否有任何内容,然后在需要时执行:
@if(is_null($mods))
//its null, do this code
@else
your current code if a var is found
@endif
isset()
和/或empty()
是最先想到的两件事if(count($mods)>0{foreach(…){}否则{echo“找不到数据”}
您似乎在某个地方遇到了问题,使您的$mods
变量不是空的,但也不是您希望的格式$