hellow我想显示10个人在过去24小时内存入和取出金额。我能够在那里显示user_id和amount但我想要用户名而不是user_id。
正在为不退出的基金工作
我在$ funds中没有名字colum而$ withdrae在用户中我有这个代码:
<div class="col-md-6">
<div class="text-center"><h4 class="text-success">Last 10 Investors</h4></div>
<table class="table text-white" >
<tbody>
@foreach( \App\Fund::where('created_at', '>', \Carbon\Carbon::now()->subHours(24))->orderBy('id', 'DESC')->take(10)->get() as $fund)
<tr>
<th scope="row"></th>
<td>{{ $fund->user_id }}</td>
<td class="text-center text-warning">{{ $fund->total }}</td>
<td class="text-right"><img src="https://adsok.com/img/btc.png" alt="Bitcoin"> <i><b>bitcoin</b></i><br></td><br>
</tr>@endforeach
</tbody>
</table>
。
撤回
<div class="col-md-6">
<div class="text-center"><h4 class="text-success">Last 10 Investors</h4></div>
<table class="table text-white" >
<tbody>
@foreach( \App\Withdraw::where('created_at', '>', \Carbon\Carbon::now()->subHours(24))->orderBy('id', 'DESC')->take(10)->get() as $withdraw)
<tr>
<th scope="row"></th>
<td>{{ $withdraw->user_id }}</td>
<td class="text-center text-warning">{{ $withdraw->total }}</td>
<td class="text-right"><img src="https://adsok.com/img/btc.png" alt="Bitcoin"> <i><b>bitcoin</b></i><br></td><br>
</tr>@endforeach
</tbody>
</table>
。
我在基金和撤回模式中都粘贴了相同的关系
public function user()
{
return $this->belongsTo('App\User', 'user_id');}
答案 0 :(得分:0)
将with('user')
添加到查询中:
Fund::with('user')->where('created_at', '>', Carbon::now()->subHours(24))->orderBy('id', 'desc')->take(10)->get()
然后您就可以显示用户名:
{{ $fund->user->name }}
另外,do not run any queries in Blade templates,这是一种不好的做法。
答案 1 :(得分:0)
您的Withdraw
和Fund
模型应与belongsTo
模型建立User
关系。
public function user() {
return $this->belongsTo("App\Models\User", "user_id", "id");
}
然后,当您尝试访问与User
相关的Fund
时,您只需执行
$fund->user->name
但是Fund
可能没有任何相关的User
,因此您需要在访问其属性之前检查它是否存在。
$fund->user ? $fund->user->name : "na"
但是,当您访问模型集合中的关系时,必须要小心,因为每次您执行另一个查询时。为了防止这种情况,您可以使用with
方法急切加载关系。
$funds = Fund::with('user')->get();
foreach($funds as $fund) {
echo $fund->user ? $fund->user->name : "na";
}