2017-04-15 3 views
0

Welche Möglichkeiten gibt es, um ein anderes Login ohne Passwort zu simulieren (1 Benutzer, einige spielbare Zeichen).Zweites Login simulieren und durch Relationen abfragen

Es funktionierte, wenn ein Benutzer das Team erstellte. Aber es macht mehr Sinn, dass ein Charakter ein Team erstellt/verbindet. Da ein User viele Charaktere hat, bin ich total fertig. Woher weiß ich, welcher aller Charaktere ein Team erschafft/verbindet? Es war einfach mit nur 1 Benutzer dies zu tun.

Vermutlich einige allgemeine Programmierkenntnisse fehlen, aber ich lerne!

Relations
Benutzer hasMany Charaktere <> Charakter belongsTo Benutzer
Charakter belongsTo-Team <> Team hasMany Charaktere

URL
In team.index Ich weiß nicht wirklich bekommen, wie alle sammeln Charaktere eines Teams. Die URL ist derzeit nur /team. Muss ich etwas wie /{character}/{team} verwenden? Aber ich mag die Einfachheit von nur /team.

-Code
kam ich mit Varianten der folgenden, aber wenn fühlt sich falsch an. Und ist falsch :-D

// how would the app know which of the Characters.Team we need. App and me don't know... 
$team = auth()->user()->characters()->team()->first(); 
$characters = \App\Character::where('team_id', $team->id)->get(); 

Klären Sie dies bitte für mich!

Sind die Beziehungen falsch?
Ist meine Vorgehensweise falsch?
Vermisse ich leichte Laravel Magie?

Vielen Dank.

Antwort

0

Ihr Ansatz ist wahrscheinlich falsch, obwohl einige Informationen fehlen.

Sie haben festgestellt, dass ein Benutzer viele Charaktere haben kann, und dass ein -Team viele Zeichen haben. Kann ein Zeichen auf mehr als einer sein Team?

Da Sie zwei Fragen stellen, werde ich die erste, erste beantworten.

Da Sie fragen, wie man die Charaktere eines Teams bekommt, sollten Sie zuerst überlegen, ob Sie das Team kennen müssen, bevor Sie nach den Charakteren suchen können. Sie könnten also url so etwas wie:

/team/{team id}/ 

Da Sie speziell über die Charaktere im Team wollen wissen, und nicht unbedingt über das Team selbst, können Sie die URL anhängen über diese Zeichen zu fragen.

Für die zweite Hälfte der Frage müssen Sie nicht über den Benutzer oder ihre Zeichen wissen. Komm einfach aus der gleichen Richtung in deine Beziehung, wie du es für die URL getan hast.

class Team extends Model { 
    public function characters() { 
    return $this->hasMany(Character::class); 
    } 
} 

In Ihrem Controller:

$team = Team::with(['characters'])->find($teamId); 
Verwandte Themen