如果在 Eloquent laravel 6 中具有一对多关系,如何从其他 table 获取值?
How to get a value from other table if it has one to many relation in Eloquent laravel 6?
我有 2 个 tables。
1. Staff <br/>
id | fname | lname | department
2. Department<br/>
id | name
Staff 和 Department 之间存在关系。部门有很多员工,员工有一个部门。现在我正在尝试获取员工的数据。因此,我应该从 department
table.
中获取名称,而不是在 Staff table 中获取 department
这是我的模型 -
Staff Model
class Staff extends Model
{
protected $table = 'staff';
protected $fillable = ['fname', 'lname', 'department'];
function departments(){
return $this->belongsTo(Department::class, 'department');
}
}
和 - Department Model
class Department extends Model
{
protected $table = 'departments';
protected $fillable = ['name', 'updated_at'];
function staff(){
return $this->hasMany('App\Staff', 'department');
}
}
在我的控制器中,我试图获取所有员工,但我得到的是部门 ID。我需要那个部门的名字。怎么可能?
提前致谢。
由于是一对多的关系department
,需要修改staff model
检查 -
class Staff extends Model
{
protected $table = 'staff';
protected $fillable = ['fname', 'lname', 'department'];
function departments(){
return $this->belongsTo(Department::class, 'id');
}
}
现在,如果您想获取所有员工信息。
在你的controller
-
public function index(){
$data = Staff::with('departments')->find(1);
return $data->departments->name;
}
希望它能奏效。
我有 2 个 tables。
1. Staff <br/>
id | fname | lname | department
2. Department<br/>
id | name
Staff 和 Department 之间存在关系。部门有很多员工,员工有一个部门。现在我正在尝试获取员工的数据。因此,我应该从 department
table.
department
这是我的模型 -
Staff Model
class Staff extends Model
{
protected $table = 'staff';
protected $fillable = ['fname', 'lname', 'department'];
function departments(){
return $this->belongsTo(Department::class, 'department');
}
}
和 - Department Model
class Department extends Model
{
protected $table = 'departments';
protected $fillable = ['name', 'updated_at'];
function staff(){
return $this->hasMany('App\Staff', 'department');
}
}
在我的控制器中,我试图获取所有员工,但我得到的是部门 ID。我需要那个部门的名字。怎么可能?
提前致谢。
由于是一对多的关系department
,需要修改staff model
检查 -
class Staff extends Model
{
protected $table = 'staff';
protected $fillable = ['fname', 'lname', 'department'];
function departments(){
return $this->belongsTo(Department::class, 'id');
}
}
现在,如果您想获取所有员工信息。
在你的controller
-
public function index(){
$data = Staff::with('departments')->find(1);
return $data->departments->name;
}
希望它能奏效。