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

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

如何在沒有樞軸模型的情況下在 Laravel 中存儲多對多關(guān)系?

如何在沒有樞軸模型的情況下在 Laravel 中存儲多對多關(guān)系?

PHP
湖上湖 2024-01-19 20:50:27
我正在嘗試創(chuàng)建多對多關(guān)系我有 2 個主表和 1 個數(shù)據(jù)透視表userid : 1name : lily eventid: 1event_name: Waterpark Waterday-------id: 2event_name :Theme Park Adventureevent_userid : 1event_id : 2user_id : 1-------------id :2event_id :1user_id :1表用戶和事件都已創(chuàng)建。僅當用戶想要加入事件時創(chuàng)建數(shù)據(jù)透視表或關(guān)系。因此,當用戶單擊“應(yīng)用”按鈕時,它只會存儲event_id并且user_id我想創(chuàng)建類似的東西。但我有問題,我不太確定如何保存它。它確實嘗試過,但我不斷收到錯誤。
查看完整描述

2 回答

?
千巷貓影

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

你可以使用attachdetach方法。

您還可以使用該sync方法來構(gòu)造多對多關(guān)聯(lián)。該sync方法接受要放置在中間表上的 ID 數(shù)組。任何不在給定數(shù)組中的 ID 都將從中間表中刪除。因此,此操作完成后,中間表中將只存在給定數(shù)組中的 ID:

$user->events()->sync([1,2]);

數(shù)組中1,2是事件 id。

筆記

因為sync, attach您應(yīng)該在模型中定義關(guān)系。

用戶模型

class User extends Model

{

? ? public function events()

? ? {

? ? ? ? return $this->belongsToMany('App\Event','event_user','user_id','event_id');

? ? }

}

事件模型


class Event extends Model

{

? ? public function users()

? ? {

? ? ? ? return $this->belongsToMany('App\User','event_user','event_id','user_id');

? ? }

}

根據(jù)您的代碼。


$user = User::find(Auth::user()->id);

$user->events()->sync([$request->event_id]);


查看完整回答
反對 回復 2024-01-19
?
翻翻過去那場雪

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

我的可選答案:


(因為當您有大數(shù)據(jù)時,附加比同步更快)


//get current synced id

$attachedIds = $user->events()->pluck('id');

//check if there is a new id selected

//if its a single id

$new_id = array_diff([$request->event_id], $attachedIds);

//if its already an array

$new_id = array_diff($request->input('event_id', []), $attachedIds);


$user->events()->attach($new_id);


查看完整回答
反對 回復 2024-01-19
  • 2 回答
  • 0 關(guān)注
  • 296 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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