第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel Eloquent 一對一關(guān)系返回空集合

Laravel Eloquent 一對一關(guān)系返回空集合

PHP
LEATH 2023-04-15 10:40:01
我在一個項(xiàng)目中使用自定義 PK 和 FK,我正在嘗試建立一對一關(guān)系。例如,在 Employee.php 中:public function title(){    return $this->hasOne('App\Title', 'TitleID');}在 Tinker 上,我可以像這樣檢索員工 TitleID:$employee = Employee::first();$employee->TitleID;哪個返回:“6”我現(xiàn)在做了一個模型:Title.php:class Title extends Model{    protected $table = "dbo.title";    protected $primaryKey = 'TitleID';}在 Tinker 中運(yùn)行時,我可以正確檢索該模型的內(nèi)容$title = Title::all();。我在 Employee.php 中建立了一個新的關(guān)系:public function title(){    return $this->hasOne('App\Title', 'TitleID');}但是,在 Tinker(我已經(jīng)重新啟動)中運(yùn)行時:$employee = Employee::first();$employee->title()->get();它返回:Illuminate\Database\Eloquent\Collection {#3027 全部: [], }我做了什么錯誤地建立了這種關(guān)系?
查看完整描述

2 回答

?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個贊

問題是因?yàn)榱硪粋€表的主鍵不是id,所以無法找到該集合。

但是,根據(jù)文檔,它是這樣寫的:

此外,Eloquent 假定外鍵的值應(yīng)與父項(xiàng)的 id(或自定義 $primaryKey)列相匹配。

所以我假設(shè)因?yàn)槲以O(shè)置了一個自定義$primaryKey值,它會憑直覺找到它——但問題似乎與打破 Eloquent 約定的本地鍵的名稱有關(guān)。

我通過分別聲明外鍵和本地鍵解決了這個問題:

public function title(){ 
   return $this->hasOne('App\Title', 'TitleID', 'TitleID');
}


查看完整回答
反對 回復(fù) 2023-04-15
?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊

您只需要訪問屬性title而不是調(diào)用title()

$employee = Employee::first();
$employee->title;


查看完整回答
反對 回復(fù) 2023-04-15
  • 2 回答
  • 0 關(guān)注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號