2017-11-08 1 views
0

hellow Ich möchte 10 Personen zeigen, die einen Betrag in den letzten 24 Stunden hinterlegt haben. Ich bin in der Lage, dort Benutzer-ID und Betrag zu zeigen, aber ich will Benutzernamen statt Benutzer-ID.Wie retraven Benutzername von user_id in Laravel?

Ich habe keinen Namen colum in $ Mittel es in Benutzer ist ich habe diesen Code:

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

Versuch mit '{{$ Fonds-> user_name}}'. –

+0

Ich habe keinen Namen Kolumin in $ Fonds es ist in Benutzer –

+0

Dann müssen Sie die Benutzertabelle in dieser Abfrage beitreten, um den Namen zu erhalten. –

Antwort

4

eine Beziehung von Ihrem Fonds Modell an das Set-up Benutzermodell

In Ihrem Fondsmodell

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

und man konnte den Benutzer zugreifen, die als

$fund->user->{your-username-field} 

an den Fonds gehört oder wenn Sie nicht eine Beziehung einrichten wollen und den Benutzernamen holen, könnten Sie dies tun, indem

$user = \App\User::find($fund->user_id); 
if (! empty($user)) { 
    $user_name = $user->user_name; // or whatever the username field is 
} 
+0

@Waqar Ali dies die beste Lösung. – Rafee

+0

@Rafee Es werden 2 Abfragen anstelle von einem betrachtet. Nun lassen Sie waqar entscheiden, dass er 2 Abfragen oder nur eine einzige Abfrage benötigt, um diese Aufgabe zu erfüllen. :) –

+0

einmal hat es gut funktioniert, aber jetzt gibt es Fehler woops etwas ging schief, wenn ich $ fund hinzufügen -> $ user-> name –

0

wie diese versuchen:

@foreach(\App\Fund::select("*")->with('users')->where('created_at', '>', \Carbon\Carbon::now()->subHours(24))->orderBy('id', 'DESC')->take(10)->get()->toArray() as $fund) 
    <tr> 
     <th scope="row"></th> 
     <td>{{ $fund['user']['user_name'] }}</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 
+0

Hier gehe ich davon aus, dass Sie die Beziehung in den Modalen eingerichtet haben. –

+0

Das wird in der Benutzertabelle sein –

+0

Ich habe keine Ahnung davon. Bitte helfen Sie –

0

so müssen Sie Modelle: "Fund" und "User".
Sie sollten sie mit Beziehungen der Laravel verbinden:
diese Methode in den "User" -Modell:

public function funds() 
{ 
    return $this->hasMany('App\Fund', 'user_id'); 
} 

dann in "Fonds" Modell:

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

jetzt können Sie Namen des Benutzers aus Mitteln zugreifen :
ich schlage vor, Sie Ihre Daten in der Steuerung, nicht Ansichten retrive:

public function index() 
{ 
    $funds = Fund::with('user')-> 
     where('created_at', '>', \Carbon\Carbon::now()-> 
      subHours(24))->orderBy('id', 'DESC')->take(10)->get(); 
    return view('viewName', ['funds' => $funds]); 
} 

dann im Blick:

@foreach ($funds as $fund) 
    {{ $fund->user->name }} 
@endforeach 
Verwandte Themen