2016-04-15 14 views
-2

ich einen Controller mit einer Funktion haben:belongsTo nicht an der richtigen Tabelle geht

public function show(Activity $linkActivity, $id) 
    { 
     $activity = $this->activityRepository->getById($id); 
     $project = $linkActivity::find($activity->project_id)->project; 
     $employee = $linkActivity::find($activity->employee_id)->employee; 
     //\Debugbar::info($manager); 

     return view('activity/show', compact('activity'))->with('project',$project)->with('employee',$employee); 
    } 

und hier ist mein Modell Activity.php:

public function employee() 
{ 
    return $this->belongsTo('App\Employee'); 
} 

Das Problem ist, dass es nicht betrachtet die richtige Tabelle und ruft die Aktivitätstabelle anstelle der employee Tabelle auf. Im DebugBar, sehe ich die Anfrage an den db getan, das ist:

select * from `activity` where `activity`.`id` = '2' limit 1 

und id ist auch die 2 aus dem Mitarbeiter ich es bin zu fragen, aber es sieht in der falschen Tabelle. Warum ist das?

+0

Ihr Schema sieht ... verwirrend aus. Was zum Teufel ist "LinkActivity" und warum müssen Sie fragen, um den Mitarbeiter zu finden, wenn Sie bereits die Mitarbeiter-ID haben? –

Antwort

0

Sie suchen nach einer Zeile in Aktivität mit Mitarbeiter-ID? Ich bin mir nicht sicher, was genau Sie wollen, aber wenn Sie einen Mitarbeiter wollen, warum nicht einfach tun, um diese

$employee = $activity->employee; 
0

Ich denke, dass der Fehler in finden ist ($ Aktivitäts-> project_id).

In der Tat, ich muss die ID des Datensatzes mit dem Fremdschlüssel und nicht die ID des Fremdschlüssels selbst setzen.

Verwandte Themen