1
在我的Laravel 5.2用戶模型中,我與他們的公司狀態建立了關係。通過HasOne關係獲取集合
public function companyStatus()
{
return $this->hasOne('CompanyUser')->select('status');
}
的CompanyUser表具有COMPANY_ID,USER_ID和狀態字段
然後在我的控制器,我做到以下幾點:
$company = Company::find($company_id);
$users = CompanyUser::where('company_id', $company_id)->pluck('user_id')->toArray();
$user_data = User::with('companyStatus')->find($users);
但是當我轉儲中的用戶數據數組它擁有所有的與公司有關的用戶,但僅顯示null因其狀態關係
{
"id":2,
"name":"Moderator",
"email":"[email protected]",
"created_at":"2016-09-08 15:26:20",
"updated_at":"2016-09-08 15:26:25",
"company_status":null
}
如果我只是用戶採集但是返回到視圖,並且每個用戶迭代和運行
$user->companyStatus->status
中值顯示,但我想包括這個集合中的JSON API來消費。
UPDATE
我嘗試添加的外鍵選擇呼叫我的關係方法:
public function companyStatus()
{
return $this->hasOne('CompanyUser')->select('status', 'user_id');
}
,現在返回以下:
{
"id":2,
"name":"Moderator",
"email":"[email protected]",
"created_at":"2016-09-08 15:26:20",
"updated_at":"2016-09-08 15:26:25",
"company_status": {"status":"1","user_id":"2"}
}
不知道盡管如此,這是最好的/正確的方法。
沒有選擇外鍵,它不能確定其他表上的相關數據/記錄,所以它是必需的,你在正確的軌道上。 –