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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Laravel 中有更新兩個(gè)連接表的通用方法嗎?

在 Laravel 中有更新兩個(gè)連接表的通用方法嗎?

PHP
縹緲止盈 2021-09-18 16:18:35
我正在嘗試更新 Laravel 中的兩個(gè)表。但我不知道你是否可以在 Object->update($associative-array); 的幫助下使用關(guān)聯(lián)數(shù)組時(shí)做到這一點(diǎn)。我在 laravel 中做了一個(gè)更新序列,它更新了兩個(gè)單獨(dú)表中的用戶和位置,用戶表中的外鍵。我試圖更新兩個(gè)表,并使用表的對(duì)象執(zhí)行更新語(yǔ)句。我通過(guò)以下方式嘗試了這個(gè):$user->update($attributes);$user->update($attributes); $location->update($attributes);但這只會(huì)更新用戶表并跳過(guò)位置表。$attributes 數(shù)組包含表用戶和位置的多列數(shù)據(jù)。該數(shù)組按照從用戶表的第一列到位置表的最后一列的順序排列。但是這些嘗試都沒(méi)有更新兩個(gè)表。他們只更新用戶并跳過(guò)位置。據(jù)我所知,如果數(shù)組包含與表相同順序的列數(shù)據(jù)并且 Laravel 完成其余的工作,那么您可以使用關(guān)聯(lián)數(shù)組以這種方式執(zhí)行此操作。只更新用戶表它確實(shí)可以工作,但我希望它以使用對(duì)象的更新函數(shù)工作的方式處理兩個(gè)表。MySQL表users:   id   firstname   middlename   lastname   active   email   password   phone   mobile_work   phone_work   gender   position_id   settling_id   location_idlocations:   id   street   house_number   addition   zipcode   city   province   countrypublic function update(Request $request, User $user, Location $location){    $attributes = request()->validate([        'firstname' => 'min:3|max:50',        'middlename' => 'max:50',        'lastname' => 'min:3|max:50',        'active' => 'required',        'email' => 'min:3|max:100',        'gender' => '',        'phone' => 'numeric|min:8',        'mobile_work' => 'numeric|min:8',        'phone_work' => 'numeric|min:8',        'position_id' => '',        'settling_id' => '',        'location_id' => '',        'street' => 'required|min:3',        'house_number' => 'required|numeric',        'addition' => '',        'zipcode' => 'required|min:6|max:7',        'city' => 'required|min:3',        'province' => 'required|min:3',        'country' => '',    ]);    $user->update($attributes);}如果我嘗試的方式是不可能的,我想聽(tīng)聽(tīng)在一個(gè)更新序列中更新兩個(gè)表的標(biāo)準(zhǔn)方法是什么。
查看完整描述

2 回答

?
翻閱古今

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

你試圖做的事情并不完全正確。你也應(yīng)該嘗試更新關(guān)系,最好先像


$location->update($locationAttributes);

$user->update($userAttributes);

順便說(shuō)一下,您想更新位置記錄還是想將新位置關(guān)聯(lián)到用戶還不是很清楚。如果是后者,那么您可以將位置與用戶相關(guān)聯(lián)


$user->locations()->attach($locationId);


查看完整回答
反對(duì) 回復(fù) 2021-09-18
?
繁華開(kāi)滿天機(jī)

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

我犯了一個(gè)錯(cuò)誤,沒(méi)有將模型用戶的位置函數(shù)包含到更新序列中。


用戶模型:


    public function locations()

    {

        return $this->hasOne(Location::class, 'id', 'location_id');

    }

我通過(guò)簡(jiǎn)單地將 $attribute 數(shù)組劃分為 2 個(gè)具有自己的表列數(shù)據(jù)的數(shù)組來(lái)解決該問(wèn)題。我還做了第二個(gè)語(yǔ)句,它從模型中調(diào)用位置函數(shù)并相應(yīng)地更新它。


  $user->locations()->update($locationAttributes);

  $user->update($attributes);


$attributes 只包含用戶信息,$locationAttributes 只包含位置信息。


$locations() 指的是表位置中的行。它通過(guò)從所選用戶那里獲取 location_id 來(lái)知道要選擇哪一行。


查看完整回答
反對(duì) 回復(fù) 2021-09-18
  • 2 回答
  • 0 關(guān)注
  • 184 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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