如果我的数据库中的头像记录不存在,我想显示一些内容。我正在使用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>
答案 0 :(得分:0)
您可以尝试使用isEmpty()代替。见下面的例子:
SELECT JSON_ARRAY(
JSON_OBJECT (
KEY 'number' VALUE s.number,
KEY 'name' VALUE s.sname,
KEY 'location' VALUE s.loc
)
) AS student_det
FROM student s;
答案 1 :(得分:0)
这只是感觉你在发送到刀片之前做得不够(查询明智)...是user_data一个集合(看起来是这样),如果是这样的话,你看起来像是一个拥有所有的用户的集合用户头像!
认为你只需要对先前的查询进行限制..我会假设一些事情,但是......
在您的控制器中:
$ users = User :: with(&#39; user_data&#39;) - &gt; 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() }}"/>
就像我说的那样,它是一个抽象的答案,但是很少有信息可以继续,希望我能够给出各种答案:)