簡體   English   中英

如果在 Eloquent laravel 6 中有一對多關系,如何從其他表中獲取值?

[英]How to get a value from other table if it has one to many relation in Eloquent laravel 6?

我有2張桌子。

 1. Staff <br/>
    id | fname | lname | department

 2. Department<br/>
    id | name

員工和部門之間存在關系。 部門有很多員工,員工只有一個部門。 現在我正在嘗試獲取員工的數據。 因此,而不是department的工作人員表,我應該得到的名字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;
}

希望它會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM