如果 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