Ich versuche, Formulardetails in meine Datenbank durch einen Controller zu speichern. Wenn ich einreichen klicken, bin ich diesen Fehler angezeigt:Laravel - Aufruf an eine Elementfunktion create() bei null
in ClinicController.php line 58 at ClinicController->store(object(Request))
Linie 58 (siehe unten für die gesamte Funktion) ist:
$request->user()->create([
Controller:
public function store(Request $request)
{
$request->user()->create([
'name' => $request->name,
'email' => $request->email,
'password' => $request->password
]);
$request->user()->clinic()->create([
'clinic_name' => $request->clinic_name,
'telephone' => $request->telephone,
'address_1' => $request->address_1,
'address_2' => $request->address_2,
'city' => $request->city,
'postcode' => $request->postcode
]);
return redirect('/home');
}
Benutzer Modell:
public function clinic() {
return $this->belongsTo(Clinic::class);
}
Klinik Modell:
public function user() {
return $this->belongsTo(User::class);
}
routes.php:
Route::post('/clinic', '[email protected]');
Jede mögliche Hilfe würde sehr groß geschätzt. Danke vielmals.
Ich wurde nach Laravel Vorbild auf ihrer Website - es scheint, von dem Hinzufügen von Daten über einen Controller eine gültige Art und Weise zu sein - https://laravel.com/docs/5.2/quickstart-intermediate#introduction. – Ben
Wenn Sie versuchen, Methode auf null aufzurufen, gibt '$ request-> user() 'null zurück, was bedeutet, dass kein angemeldeter Benutzer oder eine fehlende Web-Middleware vorhanden ist. @chasenyc, ja '$ request-> user()' ist eine Sache. – lagbox