如果Laravel中的数据为空,如何忽略html?

时间:2017-07-10 18:04:06

标签: laravel laravel-5.4 laravel-blade

我正在尝试从数据库中检索数据并检查数据是否为空。我面临的问题是,即使数据为空,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

如果数据为空,我想忽略“我的技能是”。我不想透露任何东西。

5 个答案:

答案 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