亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 null 上調用成員函數 attach()

在 null 上調用成員函數 attach()

PHP
米琪卡哇伊 2023-03-26 14:24:24
我想創建一個標簽系統,但我有一個錯誤“調用成員函數 attach() on null”。我有一個 2 表 - 人和 persontags。關系如下所示://in personpublic function tags(){        $this->belongsToMany('App\persontags');    }//in persontags    public function person(){        $this->belongsToMany('App\person');    }我也創建了表 person_persontags。在控制器中我想使用附加方法:$person->tags()->attach($request->tags);但我有這個錯誤。附言。我的觀點是這樣的:<select class="js-example-responsive col-12" multiple="multiple" name="tags[]">            @foreach($tags as $tag)                <option value={{ $tag->id }}>{{ $tag->name }}</option>            @endforeach</select>我該如何解決我的問題?@Edit $person var 不為空,因為我創建了一個新人:$person = person::create(['name' => $request->name,//...]);$person->tags()->attach($request->tags);@編輯2dd($request->tags) 的結果
查看完整描述

3 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

您沒有從關系方法返回關系類型對象。要成為關系方法,它必須返回關系類型對象(HasOne、HasMany、BelongsTo 等)。


你沒有返回任何東西void|null,你應該從方法返回:


public function tags()

{

    return $this->belongsToMany('App\persontags');

    // `belongsToMany` returns an object

}


public function person()

{

    return $this->belongsToMany('App\person');

}


查看完整回答
反對 回復 2023-03-26
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

你能通過寫這個回應$request->tags之前的內容嗎attach():


dd($request->tags);

$person->tags()->attach($request->tags);

@編輯


@Konfus2234 好吧,我認為可能導致錯誤的是表的名稱,所以您可以做的是像這樣指定表的名稱:


public function tags(){

$this->belongsToMany('App\persontags', 'name_of_table');

}

public function person(){

$this->belongsToMany('App\person', 'name_of_table');

}


查看完整回答
反對 回復 2023-03-26
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

這是因為$person變量是 return null。檢查你的$person價值,是null不是?



查看完整回答
反對 回復 2023-03-26
  • 3 回答
  • 0 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號