2016-04-04 13 views
3

Ich habe 2 Tische aufgestellt,Laravel erhalten Beziehung von softdelete

user 
intern 

Ein Benutzer belongsTo ein intern und ein inter hasOne Benutzer. Mein Problem ist, dass wenn ich eine user Aufzeichnung und die in Verbindung stehende intern softdelete Aufzeichnung habe. Und ich möchte es wiederherstellen Ich kann den zugehörigen Praktikanten nicht mehr finden. So

wenn ich finde, der Benutzer wie folgt aus:

$user = user::onlyTrashed()->find($userId); 

Und dann sagen $user->intern Ergebnis null ist, weil es nicht intern finden

Trying to get property of non-object 

Wie könnte ich dieses Problem beheben?

+0

Hat jeder einzelne trashed Benutzer auf jeden Fall einen Praktikanten haben? Haben Sie eine weiche Löschspalte auf beiden Tabellen? – Jeemusu

+0

Ja, das ist nicht das Problem. – Jamie

+0

Welche Frage war das auch eine Antwort? – Jeemusu

Antwort

0

Überprüfen Sie, ob der Benutzer existiert. Tun Sie, was auch immer Sie tun möchten.

Hier ist der Code

$user = user::onlyTrashed()->find($userId); 

if(!is_null($user)) { 
    echo $user->intern; 
} else { 
    echo 'User does not exist!'; 
} 
0

Um das weiche gelöscht intern Objekt aus Ihrem Benutzerobjekt zu erhalten, versuchen Sie Folgendes:

$user->intern()->withTrashed()->get()->first()