所以不要去正确的桌子

时间:2016-04-15 22:41:58

标签: laravel

我有一个带功能的控制器:

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

问题是它没有查看正确的表,而是调用活动表而不是employee表。在调试栏中,我看到对db db的请求是:

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

而且id很好,我问的是员工的2,但它看起来错了。 那是为什么?

2 个答案:

答案 0 :(得分:0)

您正在使用员工ID在“活动”中搜索一行?我不确定你到底想要什么,但如果你想要一个员工,为什么不这么做呢

 $employee = $activity->employee;

答案 1 :(得分:0)

我认为错误发生在find($ activity-> project_id)中。

实际上在find中,我需要将记录的id保存为外键而不是外键的id。