如果数据存在则回显

时间:2016-07-17 11:41:49

标签: php laravel

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

在我的控制器中,我将数据发送到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不为空时,它会显示数据,但是当没有数据时,它只显示任何内容。我做错了什么?

3 个答案:

答案 0 :(得分:1)

在刀片&#34;或&#34;仅检查变量是否存在。 不要尝试类似的东西:

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

答案 1 :(得分:0)

你也可以试试这个:

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

答案 2 :(得分:0)

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

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

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