我正在尝试从数据库中检索数据并检查数据是否为空。我面临的问题是,即使数据为空,html也会显示。我想忽略像例如ul li的html标签。我在这里尝试的方式就像
@if(!empty($jobseekers->skill_1))
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)->pluck('name')->first() }}</li><br/>
@endif
如果数据为空,我想忽略“我的技能是”。我不想透露任何东西。
答案 0 :(得分:3)
使用->get()
时,您无法使用以下任何内容:
if (empty($jobseekers->skill_1)) { }
if (!$jobseekers->skill_1) { }
if ($jobseekers->skill_1) { }
但是,当您使用first()
方法获取数据时,您可以简单地使用上述所有方法。
因为如果您dd($jobseekers->skill_1);
,您会注意到即使没有结果也会返回Illuminate\Support\Collection
的实例。
我认为您使用!empty()
方法对->get()
方法使用if (!$jobseekers->skill_1->isEmpty()) { }
if ($jobseekers->skill_1->count()) { }
if (count($jobseekers->skill_1)) { }
,即使数据为空,也始终返回true。你需要用其他方式。
要确定是否有任何结果,您可以执行以下任何操作:
<ul id="realList" style="list-style-type:none"></ul>
答案 1 :(得分:1)
如果您使用get()
方法获得$求职者,则无法使用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
答案 2 :(得分:0)
你应该使用 isset()
@if(isset($jobseekers->skill_1))
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)->pluck('name')->first() }}</li><br/>
@endif
答案 3 :(得分:0)
您可以使用计数方法
@if(count($jobseekers->skill_1)>0)
<li> My Skill is : {{ \App\skill::where('id',$jobseekers->skill_1)-pluck('name')->first() }}</li><br/>
@endif
答案 4 :(得分:0)
difference