Laravel 5 laravel有一个从id获取的名称

Laravel 5 laravel有一个从id获取的名称,laravel-5,eloquent,laravel-5.2,Laravel 5,Eloquent,Laravel 5.2,我有一张桌子,上面有: id employee_name manager_id 在此表中,manager id是同一表中id的外键 我还有一张有项目的桌子 id employee_id 在此表中,employee_id是employee表中id的外键 我尝试从管理员处获取名称,如控制器中的: public function show(Employee $managers, $id) { $manager = $managers::find($id)->manager;

我有一张桌子,上面有:

id
employee_name
manager_id
在此表中,manager id是同一表中id的外键

我还有一张有项目的桌子

id
employee_id
在此表中,employee_id是employee表中id的外键

我尝试从管理员处获取名称,如控制器中的:

public function show(Employee $managers, $id)
{

    $manager = $managers::find($id)->manager;
    \Debugbar::info($manager);

}
我的App\Employee文件如下:

class Employee extends Model {

    protected $table = 'employees';
    public $timestamps = true;

    public function projects()
    {
        return $this->hasMany('App\Projects');
    }
    public function manager()
    {
        return $this->hasOne('App\Employee');
    }

}
问题是我得到了:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'employees.employee_id' in 'where clause' (SQL: select * from `employees` where `employees`.`employee_id` = 1 and `employees`.`employee_id` is not null limit 1)
对我来说,这表明它从另一个函数中获取sal语句中的雇员id,在该函数中,它只应获取同一个表中的id。

您应该更改:

public function manager()
{
    return $this->hasOne('App\Employee');
}
进入

您应该更改:

public function manager()
{
    return $this->hasOne('App\Employee');
}
进入


您可以不使用manager\u id来执行此操作。我希望第二个参数适用于您的id不符合tablename\u id约定的情况

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

您可以不使用manager\u id来执行此操作。我希望第二个参数适用于您的id不符合tablename\u id约定的情况

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