Edit:
I dont think its the same issue as:
https://stackoverflow.com/questions/40022929/laravel-relationship-error-undefined-property-illuminate-database-eloquent-col
because in that issue hasMany relationship is used which returns an array but i used belongsTo which should return a certain object.
Ich habe eine Datenbank-Struktur, wo ich eine viele zu viele Beziehung zwischen Benutzern und Unternehmen Tabelle haben. Dafür habe ich eine Kreuzreferenztabelle company_user. Außerdem hat jeder Benutzer eine bestimmte Rolle in einer Firma, so dass die Crossreference-Tabelle auch eine role_id hat. Das Problem ist, dass ich aus irgendeinem Grund eine Ausnahme erhalte, wenn ich versuche, die Rolle aus der Kreuzreferenztabelle abzurufen.Laravel - Angehörige zu Beziehung in benutzerdefinierten Pivot-Modell funktioniert nicht
Hier ist, wie ich die Beziehung definiert in Gesellschaft Modell:
public function users() {
return $this->belongsToMany('App\User')->withPivot('role_id')->using('App\CompanyUser');
}
Wenn ich nun funktioniert nur versuchen, zu role_id von Pivot alles zu bekommen:
@foreach($company->users as $user)
{{$user->pivot->role_id}} // this displays correct role_id
@endforeach
Aber ich brauche auch die Daten von Die Rolle, also habe ich eine Beziehung in meinem benutzerdefinierten Pivot definiert. Hier ist das ganze Modell:
<?php
namespace App;
use Illuminate\Database\Eloquent\Relations\Pivot;
class CompanyUser extends Pivot
{
public function role()
{
return $this->belongsTo('App\Role');
}
}
und ich versuchte, es wie folgt zugreifen:
@foreach($company->users as $user)
{{$user->pivot->role()->id}}
@endforeach
Aber das gibt mir eine Ausnahme:
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$id
Was bin ich?
Mögliche Duplikat [Laravel Beziehung Fehler: Nicht definierte Eigenschaft: Illuminate \ Database \ Eloquent \ Collection :: $ id on line 1] (https://stackoverflow.com/questions/ 40022929/Laravel-Beziehung-Fehler-undefined-Eigenschaft-Illuminate-Datenbank-eloquent-col) –