【问题标题】:If empty doesn't work in laravel blade如果空在 laravel 刀片中不起作用
【发布时间】:2017-11-03 14:08:12
【问题描述】:

如果我的数据库中的头像记录不存在,我想显示一些内容。我正在使用 empty() 函数,但它不起作用。即使头像为空,它也会显示 img 和 alt="avatar"。有人可以帮忙吗?

@foreach ($users as $user)
        <tr>
          <td class="user-table-information">

              @if(!empty($user->user_data->where('user_id', $user->id)->avatar))
                <i class="fa fa-user"></i>      
              @else

              @foreach($user->user_data as $data)
                <img src="{{ asset('/storage/uploads/avatars/'. $data->avatar) }}" class="avatar" alt="avatar">  
              @endforeach
                @endif
                 </td>

【问题讨论】:

  • 您是如何获得$users 数据的。您需要做-&gt;where('user_id',$user-&gt;id) 的事实表明出了点问题
  • $user-&gt;user_data-&gt;where('user_id', $user-&gt;id) 您可能需要在-&gt;avatar 之前添加-&gt;first() 以使empty 正常工作。
  • 太棒了,也许我错过了一些东西,但你不是要使用 empty() 而不是 ! empty() 吗?如在头像为空时显示占位符?看起来你的逻辑是倒退的。

标签: php laravel blade


【解决方案1】:

您可以尝试使用 isEmpty() 代替。请参见下面的示例:

@if( !$someDBcollection->isEmpty() )
echo "its not empty";
@endif

【讨论】:

    【解决方案2】:

    这只是感觉你在发送到刀片之前做得不够(查询明智)...... user_data 是一个集合(看起来是这样),如果是这样,看起来你有一个包含所有用户的集合用户头像!

    认为您只需要对较早的查询进行限制。我会假设一些事情,但是...

    在您的控制器中:

    $users = User::with('user_data')->all();

    或者更好的是,如果它只是您需要的头像路径,并且它们需要是单独的模型,只需使用关系...

    $users = User::with('avatar')->all();
    
    class Avatar()
    {
        ...  some stuff here
    
        public function relativePath()
        {
            return "/storage/uploads/avatars/" . $this.filename;
        }
    
        public function user()
        {
            return $this->belongsTo('App\User')
        }
    
    }
    

    公共类用户() { ...一些东西

    public function avatar()
    {
        return $this->hasOne('App\Avatar');
    }
    

    }

    然后简单地使用它作为:

    <img src="{{ $user->avatar->relativePath() }}"/>
    

    就像我说的,它是一个抽象的答案,但信息很少,希望我能够给出各种各样的答案:)

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2018-05-16
      • 1970-01-01
      • 2014-11-15
      • 2020-06-20
      • 1970-01-01
      相关资源
      最近更新 更多