PHP Laravel: SQL-Query im Member-Bereich?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

da ich in der letzten Zeit viel in PHP programmiert habe,
schaue ich mir gerade Laravel an, bzw. lerne es gerade.

Ich habe jetzt eine User-Table und eine weiter Tabelle 'email'.
Diese email-Table ist wie folgt aufgebaut: id, user_id, email.

Jetzt möchte ich nach dem Einloggen in den Mitgliederbereich mittels
der user_id 1, dort alle Datensätze wiedergeben, die sich in der mail-
Table befinden und dort im Datensatz ebenfalls die user_id 1 einge-
tragen wurde.

Ich habe aktuell jedoch keine Ahnung, wie ich dies realisieren
kann. Vielleicht hat einer ein paar Tipps für mich!? VG, David
 
Also du willst alle Einträge aus der email Tabelle mit der User-ID '1' haben?
Gibt mehrere Möglichkeiten, ohne Informationen zu haben ob du ein Eloquent für diese Tabelle hast.
Ohne Eloquent wäre dies eine Option:
Code:
DB::table('email')
->where('user_id','=',1)
->get();

EDIT:
Da ich gerade lese die user_id soll immer durch die vom angemeldeten User ersetzt werden, dann sollte es so aussehen:
Code:
DB::table('email')
->where('user_id','=',Auth::user()->id)
->get();

Sollte in deiner Tabelle das Attribut für die User id nicht 'id' genannt sein, sondern z.B. user_id dann z.B. Auth::user()->id gegen Auth::user()->user_id tauschen.
 
Zuletzt bearbeitet von einem Moderator:
Ein Beispiel für ein Select aus der Doku:
Code:
$users = DB::table('users')->where([
    ['status', '=', '1'],
    ['subscribed', '<>', '1'],
])->get();

Das angepasst auf Deine Tabelle und Bedingungen:
Code:
$emails = DB::table('email')->where([
    ['user_id', '=', '1']
)->get();

bzw. die 1 durch Auth::id() ersetzen ...

Aus der Doku dazu:
You may access the authenticated user via the Auth facade:

use Illuminate\Support\Facades\Auth;

// Get the currently authenticated user...
$user = Auth::user();

// Get the currently authenticated user's ID...
$id = Auth::id();

Noch eine Ergänzung:
Wenn Auth::id() den Wert Null hat, dann ist der aktuelle User nicht angemeldet ...
 
Zuletzt bearbeitet: (URL und Doku-Eintrag zu Auth ergänzt)
Das hilft mir schon mal sehr weiter, vielen Dank!
Das ganze müsste ich ja in einem Controller hinterlegen.
Wenn ich jetzt einen neuen Controller erstelle
und diesen anschließend in Routes/web.php hinterlege:

PHP:
Route::get('/home', 'HomeController@index')->name('home'); // vorhanden
Route::get('/home', 'CampaignController@viewCampaigns'); // die neue

dann überschreibe ich ja die alte mit der neuen, oder?
Ich habe zum testen nur ein return "Test" eingebunden
und komme nun nicht mehr auf den Mitgliederbereich.
Ich sehe nur Test.

Wie kann ich denn mehrere Funktionen für eine Seite einbinden?
Oder muss ich dies auf einer anderen Art und Weise realisieren?
 
Gibt es einen Grund warum Du nicht den zweiten Controller über '/Campaign' oder etwas ähnliches ansprechen willst?
 
Ja, bzw. ich denke, dass es ein rund sein könnte.
Sobald ich mich einlogge, werde ich auf /home weitergeleitet.
In dieser Ansicht möchte ich Daten aus der Datenbank wiedergeben.
Ich habe jedoch keinen Schimmer, wie ich das sonst realisieren könnte.
 
Was spricht dagegen, nach dem Login auf ein anderes Verzeichnis weiterzuleiten?
 
Ist das nicht ümständlich weil es ja das Verzeichnis 'home' schon gibt?
 
Umständlich? Es ist soweit ich weiß die einfachste Variante, jeden Controller über ein anderes Verzeichnis anzusprechen.

Aber Du kannst auch mehrere Methoden mit einem Controller umsetzen.

Die verschiedenen Varianten werden eigentlich in der Doku gut beschrieben ...
 
Aber wie kann ich denn dann nach dem login und der Weiterleitung auf /home direkt auch bspw. eine Datenbank Abfrage erstellen, im gleichen View. Irgendwie erschließt sich mir das über die Doku nicht so recht.
 
Warum suchst Du Dir nicht ein Tutorial, in dem Schritt für Schritt ein Laravel-Projekt erstellt wird?
 
Kannst du mir eins empfehlen?
Am besten eins auf deutsch.
 
Zurück
Oben