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

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

Laravel:一對多關(guān)系中的自定義外鍵無法解決

Laravel:一對多關(guān)系中的自定義外鍵無法解決

PHP
炎炎設(shè)計 2023-10-15 17:07:35
有兩個模型User和Submission,一個 User 可以有任意數(shù)量的提交,其中他被引用為Author。我已經(jīng)根據(jù)文檔建立了關(guān)系,結(jié)果hasMany()工作正常。只是該belongsTo()方法沒有返回預(yù)期的對象。這是我的模型的遷移:Schema::create('users', function (Blueprint $table) {    $table->id();});Schema::create('submissions', function (Blueprint $table) {    $table->id();    $table->foreignId( 'author' );    $table->foreign( 'author' )->references('id')->on('users');});這些是我的模型中的關(guān)系:class User extends Authenticatable {    public function submissions() {        return $this->hasMany( 'App\Submission', 'author' );    }}class Submission extends Model {    public function author() {        return $this->belongsTo( 'App\User', 'author' );    }}現(xiàn)在,在我的控制器中我想執(zhí)行以下代碼:$author = Submission::find(1)->author;dd($author);但是,打印的是存儲的作者 ID 的整數(shù)值,而不是用戶對象。這種關(guān)系似乎并沒有通過該author()方法解決。另一方面,當(dāng)我獲取用戶及其提交內(nèi)容時,一切都按預(yù)期進行,即提交內(nèi)容被打印為對象:$u = User::find(1)->submissions;dd($u);但是,當(dāng)我沒有定義自定義外鍵并將列重命名為時,從提交到用戶的關(guān)系確實得到了正確解決。belongsToauthor_id有效的配置是這樣的://migration for Submissions tableSchema::create('submissions', function (Blueprint $table) {    $table->id();    $table->foreignId( 'author_id' );    $table->foreign( 'author_id' )->references('id')->on('users');});//within Submission modelpublic function author() {    return $this->belongsTo( 'App\User' );}我有一種感覺,我錯過了一些東西。我還需要建立任何額外的鏈接嗎?我瀏覽了文檔和網(wǎng)絡(luò)來尋找解決方案,但沒有成功。如果沒有其他解決方案,我將重命名該列。但我寧愿了解問題的原因并使用我的原始設(shè)計。
查看完整描述

1 回答

?
慕森卡

TA貢獻1806條經(jīng)驗 獲得超8個贊

您不應(yīng)使用相同的字符串來命名關(guān)系函數(shù)和字段。

當(dāng)你有一個專欄author并且public function author()Laravel 首先會獲取專欄內(nèi)容。

將 '_id' 添加到列中,這樣您就不需要在$this->belongsTo( 'App\User', 'author' );.


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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