2017-12-21 25 views
0

Ich benutze Laravel 5.5, möchte grundlegende Form Imput tun, wo ist nur ein Feld -> "E-Mail". Ich verwende eloquent, Modell mit Datenbank für diese Teilnehmer zu interagieren inputs.When die Controller-Methode aufgerufen wird, dieser Fehler folgt:LARAVEL 5.5: Was ist mit der Methode save() falsch?

FatalThrowableError (E_ERROR) Ruf auf eine Elementfunktion speichern() auf String

Die Sache ist, ich benutze genau die gleiche Lösung für andere Form ive bekam in meiner Anwendung (Kontaktformular). Das ist der Grund, warum ich ziemlich sicher bin, dass Namespacing, Modelle oder andere Sachen ich gut geschrieben habe. Das ist mein Code, vielen Dank im Voraus.

SubsController.php

class SubsController extends Controller 
{ 
    public function store(Request $request) 
    { 
     $subscriber = new Subscriber; 
     $subscriber=$request->input('email'); 
     $subscriber->save(); 
     return redirect()->to(route('homepage')); 
    } 
} 
+1

Sie anrufen 'save' auf eine Zeichenfolge, weil Sie gerade' zugewiesen haben $ request-> Eingang ('E-Mail') 'in' $ subscriber' – Wreigh

+0

sollte es sein wie $ subscriber-> email = $ request-> input ('email'); –

Antwort

4

Bitte diese Zeile überprüfen, müssen Sie nur einen String-Wert zugewiesen Ihre $subscriber Variable

$subscriber =$request->input('email'); 

Der richtige Weg ist

public function store(Request $request) { 
    $subscriber = new Subscriber; 
    $subscriber->email =$request->input('email'); 
    $subscriber->save(); 
    return redirect()->to(route('homepage')); 
} 
+0

Oh mein Gott! So peinlich, so zu irren! Es war nur, weil ich "überblickte" (4 Uhr hier die ganze Nacht arbeiten) ... vielen Dank. – OndOne

+0

Wir alle machen das hin und wieder. Haha –

+0

@OndOne Betrachten Sie einen guten Schlaf und beginnen Sie frisch am Morgen. Diese Art von Fehler ist genau deshalb, warum All-Nighter eher unproduktiv sind - manchmal ist man * schlechter * nach einem. – ceejayoz

0

Hier ist die Lösung:

$subscriber = new Subscriber; 
$subscriber->email = $request->input('email');  
$subscriber->save(); 
return redirect()->to(route('homepage')); 
0

Eine weitere Lösung ist

public function store() { 
    $data = request()->validate('email'); 
    Subscriber::create($data); 
    return redirect()->route('homepage'); 
} 
Verwandte Themen