Ich arbeite derzeit an einem PHP (Laravel) Projekt, wo wir MongoDB (das Paket jenssegers) verwenden. Ich habe das Kennwort auf die folgende Struktur setzt auf:Durch eingebettete Sammlungen in MongoDB suchen
{
"_id" : ObjectId("58d56135b462e816642abbd1"),
"email" : "[email protected]",
"updated_at" : ISODate("2017-03-26T20:46:14.074Z"),
"created_at" : ISODate("2017-03-24T18:11:01.040Z"),
"passwordReset" : [
{
"token" : "59b4b694e9ddcd9b44b0374eac595b28",
"updated_at" : ISODate("2017-03-24T18:11:05.017Z"),
"created_at" : ISODate("2017-03-24T18:11:05.017Z"),
"_id" : ObjectId("58d56139b462e816642abbd4")
}
]
}
jedoch mehrere Benutzer können mehrere passwordReset
‚s haben. Also, wenn ich für Token gesucht werden soll, würde Ich mag nur in der Lage sein, durch alle Resets zu suchen, anstatt dies zu tun:
$users = User::all();
$activeReset = null;
foreach ($users as $user) {
if (! is_null($user->passwordReset)) {
foreach ($user->passwordReset as $reset) {
if ($reset->token == $this->route('token')) {
$activeReset = $reset;
}
}
}
}
Es ist eine Arbeitslösung, aber es ist nicht die schönste, auch, wenn die App geht in Produktion, dies wird enorme Ladezeiten verursachen, was nicht das ist, wonach ich suche.
Wenn Sie jedoch alle Resets über PasswordReset::all();
abrufen, wird ein leeres Array angezeigt.
Also, gibt es eine Möglichkeit, dies zu tun, ohne durch alle Benutzer gehen? Durch Laravel
selbst oder vielleicht durch "rohes" PHP?
Danke.
Bitte aktualisieren Sie die Frage mit Modellbeziehungen Definition. –