设置在Blade中使用的获取记录默认值

时间:2017-05-03 14:49:22

标签: laravel model blade laravel-5.4

我尝试使用以下方法从数据库中获取所有用户字段:

select TO_DATE('01-DEC-15','DD-MON-YYYY') - 1
FROM DUAL;

我的数据库中有一些字段$user = Users::all(); 我想知道在刀片中使用时是否有任何方法可以设置空字段的默认值?

例如我有这个字段:

nullable

所有这些字段都是可选的(在数据库中可以为空)我希望显示first_name, last_name, bio, city, fb_account, twitter_account , ... 表示具有空值的字段,但我不想对每个字段使用N/A

有可能吗?

更新:

我希望在任何地方都使用@if,如果这是{{ $user->first_name }},则返回null not null`返回

3 个答案:

答案 0 :(得分:4)

您可以在Laravel 5.4

中执行此操作
{{ $first_name or 'N/A' }}

完全相同
echo isset($first_name) ? $first_name : 'N/A'; 

根据您的更新,您可以查看Accessor & Mutators

你可以这样:

public function getFirstNameAttribute($value)
{
    if(! empty($value)) 
    {
      return $value;
    }

    return null;
}

答案 1 :(得分:0)

在将用户对象发送到视图之前,使用each方法遍历用户对象

$user = Users::all()->each(function ($item, $key) {
    if ($item->first_name === null) {
        $item->first_name = 'N/A';
    }
});

答案 2 :(得分:0)

如果您想这样做,可以使用自定义属性

$VAR1 = [
          undef,
          '0',
          undef,
          undef,
          '0',
          '4',
          '8',
          '86',
          '8',
          '8',
          '50',
          '8',
          '6',
          '52',
          '8',
          '8',
          '36'
        ];

然后

public function getFirstNameAttribute()
{
    return $this->first_name ?: 'N/A';
}