如果 Laravel 中的数据为空,如何忽略 html?
How to ignore html if data is empty in Laravel?
我正在尝试从数据库中检索数据并检查数据是否为空。我面临的问题是 html 即使数据为空也会显示。我想忽略 html 标签,例如 ul li。这是我尝试的方式
@if(!empty($jobseekers->skill_1))
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)->pluck('name')->first() }}</li><br/>
@endif
如果数据为空,我想忽略 "My Skill is "。我不想展示任何东西。
如果您使用 get()
方法获得 $jobseekers,则不能使用 empty($jobseekers )
您可以使用其他条件代替空 :
@if($jobseekers->skill_1 != '')
在这种情况下,您将 skill_1 检查为空字符串
还有
@if($jobseekers->skill_1)
等等
用以下代码替换您的代码并检查它:
@if($jobseekers->skill_1 != '')
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)-pluck('name')->first() }}</li><br/>
@endif
你应该使用 isset()
@if(isset($jobseekers->skill_1))
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)->pluck('name')->first() }}</li><br/>
@endif
使用 ->get()
时,您不能简单地使用以下任何一项:
if (empty($jobseekers->skill_1)) { }
if (!$jobseekers->skill_1) { }
if ($jobseekers->skill_1) { }
但是,当您使用first()
方法获取数据时,您可以简单地使用上述所有方法。
因为如果你 dd($jobseekers->skill_1);
你会注意到 Illuminate\Support\Collection
的实例总是 returned,即使没有结果。
我认为您使用 !empty()
方法对数据使用 ->get()
方法,即使数据为空,该方法也始终 return 为真。你需要使用其他方式。
要确定是否有任何结果,您可以执行以下任一操作:
if (!$jobseekers->skill_1->isEmpty()) { }
if ($jobseekers->skill_1->count()) { }
if (count($jobseekers->skill_1)) { }
可以用计数法
@if(count($jobseekers->skill_1)>0)
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)-pluck('name')->first() }}</li><br/>
@endif
@if(count($data)>0)
//write your code which you want to show if data is available
@endif
我正在尝试从数据库中检索数据并检查数据是否为空。我面临的问题是 html 即使数据为空也会显示。我想忽略 html 标签,例如 ul li。这是我尝试的方式
@if(!empty($jobseekers->skill_1))
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)->pluck('name')->first() }}</li><br/>
@endif
如果数据为空,我想忽略 "My Skill is "。我不想展示任何东西。
如果您使用 get()
方法获得 $jobseekers,则不能使用 empty($jobseekers )
您可以使用其他条件代替空 :
@if($jobseekers->skill_1 != '')
在这种情况下,您将 skill_1 检查为空字符串
还有
@if($jobseekers->skill_1)
等等
用以下代码替换您的代码并检查它:
@if($jobseekers->skill_1 != '')
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)-pluck('name')->first() }}</li><br/>
@endif
你应该使用 isset()
@if(isset($jobseekers->skill_1))
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)->pluck('name')->first() }}</li><br/>
@endif
使用 ->get()
时,您不能简单地使用以下任何一项:
if (empty($jobseekers->skill_1)) { }
if (!$jobseekers->skill_1) { }
if ($jobseekers->skill_1) { }
但是,当您使用first()
方法获取数据时,您可以简单地使用上述所有方法。
因为如果你 dd($jobseekers->skill_1);
你会注意到 Illuminate\Support\Collection
的实例总是 returned,即使没有结果。
我认为您使用 !empty()
方法对数据使用 ->get()
方法,即使数据为空,该方法也始终 return 为真。你需要使用其他方式。
要确定是否有任何结果,您可以执行以下任一操作:
if (!$jobseekers->skill_1->isEmpty()) { }
if ($jobseekers->skill_1->count()) { }
if (count($jobseekers->skill_1)) { }
可以用计数法
@if(count($jobseekers->skill_1)>0)
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)-pluck('name')->first() }}</li><br/>
@endif
@if(count($data)>0)
//write your code which you want to show if data is available
@endif