Ich bin ein bisschen fest.Laravel: Ein Benutzer kann viele Geräte haben, aber jedes Gerät gehört zu maximal einem Benutzer
Also ich habe 2 Modelle, User
und Device
. Ein Benutzer kann X-Geräte haben, aber jedes Gerät kann nur zu maximal 1 Benutzer gehören.
Ich habe die Beziehungen wie folgt definiert:
class Device extends Model
{
public function user()
{
return $this->hasOne('App\User');
}
}
class User extends Authenticatable
{
public function devices()
{
return $this->hasMany('App\Device');
}
}
Nun, ich für meine Geräte einen Überblick-View möchten.
class DeviceController extends Controller
{
public function showOverview()
{
$devices = Device::all();
return view('devices.overview')->with('devices', $devices);
}
}
In dieser Ansicht ich alle meine Geräte foreach.
@foreach ($devices as $device)
<tr>
<td>{{ $device->id }}</td>
<td>{{ $device->serial }}</td>
<td>{{ $device->state }}</td>
<td><!-- Get user Name here by $device->user_id Foreign key --></td>
<td>
<a href="" class="btn btn-block btn-primary btn-sm">
<i class="fa fa-user" aria-hidden="true"></i> Profile
</a>
</td>
</tr>
@endforeach
Dort, wo der Kommentar ich gehen möchte assoziiert den Benutzernamen erhalten. Der Fremdschlüssel wird als $device->user_id
gespeichert und verweist auf die ID der Benutzertabelle. Wie kann ich den Namen dieses Benutzers erhalten?
Vielen Dank. Aber beim Zugriff auf meine Route bekomme ich diesen Fehler: 'Rufen Sie die undefinierte Methode auf Beleuchten \ Datenbank \ Query \ Builder :: all()' nach dem Ersetzen, wie Sie es geschrieben haben. – Scarwolf
Ich habe die Antwort aktualisiert, sorry für den Tippfehler –