回显数据(如果存在)


Echoing data if it exists

如果表为空,我想显示默认数据。我在 laravel 文档中搜索并找到了这个。

在我的控制器中,我向我的show.blade.php发送数据

public function show($id)
{
    //Get profile data from the user
    $user = User::find($id);        
    return view( 'gebruiker/show',[
        'user' => $user,
    ] );
}

在我的blade中,我显示数据

@foreach ($user->profile as $profile)
    <div class="col-md-12 col-xs-12" align="center"> 
        <h1>{{ $profile->user->name or 'Geen naam' }}
        </h1>
        <h3>{{ $profile->age or 'Geen leeftijd' }}</h3>
        <span>{{ $profile->country or 'Geen land' }}</span>
    </div>
    <div class="col-md-6 col-xs-6 follow line" align="center">
        <h3>
             Bezoekers <br/> <span>{{ $profile->visitors or 'Geen bezoekers' }}</span>
        </h3>
    </div>
    <div class="col-md-12 col-xs-12 login_control text-center">
            <br>
            {{ $profile->profile or 'Geen beschrijving' }}
    </div>
@endforeach 

$profile->age不为空时,它会显示数据,但当没有数据时,它什么也不显示。我做错了什么?

在刀片中,"or"仅检查变量是否存在。以免尝试这样的事情:

@if(!empty($profile->age))
   {{ $profile->age }}
@else
  Geen leeftijd
@endif

你也可以试试这个:

@if($profile->age !='' && $profile->age !='0')
{{ $profile->age }}
@else
Geen leeftijd
@endif

根据您的需求,您可以在模型中创建一个访问器:

public function getAgeAttribute($value)
{
    return !empty($value) ? $value : 'Geen leeftijd';
}

理想情况下,这应该存在于演示者中。太糟糕了{{ $profile->age or 'Geen leeftijd' }}不起作用,它应该。可能很快就会有人为它做公关。