In meinem Modell habe ich geschütztes $ table hinzugefügt, aber wenn ich es benutzen werde, benutzt laravel es nicht. Dies ist meine Vorbilder:laravel eloquent verwendet keinen geschützten Tabellennamen
class Role extends Model
{
protected $table = 'role';
protected $primaryKey = 'ROLE_ID';
protected $casts = [
'ACTIVE' => 'boolean',
];
protected $fillable = [
'ROLE', 'ACTIVE', 'TYPE'
];
public $timestamps = false;
public function groups()
{
return $this->belongsToMany(Group::class, GroupRole::class, 'ROLE_ID', 'GROUP_ID');
}
}
Und das ist Gruppenmodell:
class Group extends Model
{
protected $table = 'groups';
protected $primaryKey = 'GROUP_ID';
protected $fillable = [
'GROUP_ID', 'GROUP_NAME', 'PARENT_GROUP', 'ACTIVE'
];
protected $casts = [
'ACTIVE' => 'boolean',
];
public $timestamps = false;
public function type()
{
return $this->belongsTo(GroupType::class, 'TYPE', 'TYPE_ID');
}
public function roles()
{
return $this->belongsToMany(Role::class, GroupRole::class, 'GROUP_ID', 'ROLE_ID');
}
}
Und das ist group_role Tischmodell. Es behandelt viele zu viele Beziehung zwischen Rolle und Gruppe:
Problem beginnt, wenn ich diese Modelle verwenden möchte. Zum Beispiel:
$role = App\Role::first();
$groups = $role->groups;
Laravel gibt diese Fehlermeldungen:
SQLSTATE [42S02]: Basistabelle oder Ansicht nicht gefunden: 1146 Table 'favian_mydb.App \ GroupRole' existiert nicht (SQL: wählen
groups
. *,App\GroupRole
.ROLE_ID
alspivot_ROLE_ID
,App\GroupRole
.GROUP_ID
alspivot_GROUP_ID
vongroups
ExklusionsverknüpfungApp\GroupRole
aufgroups
.GROUP_ID
=App\GroupRole
.GROUP_ID
woApp\GroupRole
.ROLE_ID
= 1)
Ich habe versucht, App \ GroupRole durch group_role zu ersetzen und in mysql auszuführen. Es funktioniert gut. Fehle ich etwas?
Nein, es funktioniert nicht. –