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