2017-12-03 19 views
1

こんにちは私は最後の24時間に入金し、引き出した10人を見せたいと思います。私はそこにuser_idと量を表示することができますが、user_idの代わりにユーザー名が必要です。LaravelのユーザーIDからユーザー名を取得する方法は?

<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> 

:それは撤回

のためではない資金のために働いている

私はこのコードを持って何名$ファンド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\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

すでにユーザーリレーションを設定している場合は、 '$ fund-> user-> id'または' $ fund-> user-> name'を使用してユーザーデータを呼び出すことができます。 [こちら](https://laravel.com/docs/5.5/eloquent-relationships#one-to-many-inverse)に記載されています。 – vozaldi

答えて

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、それは悪い習慣です。

+0

なぜ私のコードが機能していないのですか?関係もあります –

+0

@WaqarAli何が正確に動作していないのですか?何かエラーがありますか?そうでない場合は、( 'created_at'、 '>'、\ Carbon \ Carbon :: now() - > subHours()のように '{{dd(\ App \ Fund :: with( 'user' 24)) - > orderBy( '​​id'、 'DESC') - > take(10) - > get())}} ' –

+0

これは、非オブジェクトのプロパティを取得しようとしています –

0

WithdrawFundモデルのモデルは、Userモデルとの関係がbelongsToである必要があります。あなたはFundに関連Userにアクセスしようとするたびに

public function user() { 
    return $this->belongsTo("App\Models\User", "user_id", "id"); 
} 

はその後、あなたは単に

$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"; 
} 
関連する問題