2016-04-15 56 views
-2

我有一個功能的控制器:屬於關聯不會右表

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); 
    } 

,這裏是我的模型Activity.php:

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

的問題是,它是不是在看正確的表,它正在調用活動表而不是僱員表。在debugbar,我看到的請求進行的分貝是:

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

ID是很好的2從我自尋其員工,但它會在錯誤的表。 這是爲什麼?

+0

您的模式看起來很混亂。 「linkActivity」到底是什麼,爲什麼當你已經擁有員工ID時,你需要查詢該員工以找到員工? –

回答

0

您正在使用員工ID在Activity中搜索一行?我不知道你想要什麼,但如果你想僱員爲什麼不直接做

$employee = $activity->employee; 
0

我認爲錯誤是在查找($活動 - > PROJECT_ID)。

其實在查找中,我需要把持有外鍵的記錄的id而不是外鍵本身的id。