2016-10-28 2 views
0

Ich arbeite an Laravel 5.3 und ich muss eine doppelte Zeile aus der Tabelle speichern hier ist meine Funktion und ich bekomme folgenden Fehler Aufruf an eine Member-Funktion replizieren() auf null bitte helfen sie mir, es FunktionAufruf einer Memberfunktion replicate() auf null (Laravel 5.3)

public function copy($id){ 

$task = Task::find(1); 
$newTask = $task->replicate(); 
$newTask->save(); 
    } 
+0

Sind Sie sicher, '$ task' den richtigen Wert hat? –

+0

ja, ich habe in Aufgabe jedes Ding sorgfältig definiert @Sougata Bose –

+1

Nun, der Fehler mssage sagt '$ Task' ist null. Es gibt höchstwahrscheinlich keine Aufgabe mit dieser ID. – nXu

Antwort

0

`` `

public function copy ($ id) zu beheben {

$task = Task::find(1); 
if (null !== $task) { 
    $newTask = $task->replicate(); 
    if (null !== $newTask) { 
     $newTask->save(); 
    } 
} 

} `` `

+0

ok ist @ Vincent getan –

0

Um dieses Problem besser lesbar machen Sie firstOrFail method of Laravel's Eloquent verwenden können. Wenn mit id - 1 kein Ergebnis gefunden wird, wird Illuminate\Database\Eloquent\ModelNotFoundException ausgelöst, was Sie möglicherweise abfangen und weiter ausführen können.

Der Code lautet:

public function copy($id) { 
    try { 
    $task = Task::firstOrFail(1); 
    $newTask = $task->replicate(); 
    $newTask->save(); 
    } catch(Exception $e) { 
     // If nothing found with that (1) id, then the throws exception is catched here! 
    } 
} 
Verwandte Themen