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

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

如何更新拉拉維爾雄辯中的外鍵ide值?

如何更新拉拉維爾雄辯中的外鍵ide值?

PHP
牧羊人nacy 2022-09-17 22:06:33
我對(duì)拉拉維爾很陌生,我無(wú)法在拉拉維爾文檔和這里找到這個(gè)問題的答案。我想這只是一個(gè)如何搜索它的問題,因?yàn)槲曳浅4_定這是一個(gè)常見的情況。我有兩個(gè)模型處于關(guān)系中(這是一個(gè)簡(jiǎn)化的情況),我通過(guò)資源文件檢索我需要的信息,但我無(wú)法了解如何正確存儲(chǔ)或更新信息。下面是一個(gè)代碼示例:Models\Company.phpclass Company extends Model{    protected $fillable = [        'name', 'blablabla', 'country_id', 'blablabla2',    ];    public function country() {        return $this->belongsTo(Country::class);    }}Models\Country.phpclass Country extends Model{    protected $fillable = [        'code', 'name', 'prefix', 'tax_code_id',    ];    public function companies() {        return $this->hasMany(Company::class);    }}然后我有一個(gè)公司控制器文件來(lái)管理API請(qǐng)求:Controllers\CompanyController.phpclass CompanyController extends BaseController{    public function index()    {        $companies = Company::paginate();        $response = CompanyResource::collection($companies)->response()->getData(true);        return $this->sendResponse($response, 'Companies retrieved successfully');    }    public function store(Request $request)    {        $input = $request->all();        $validator = Validator::make($input, $this->validation_rules);        if($validator->fails()){            return $this->sendError('Validation error.', $validator->errors());        }        $company = Company::create($input);        return $this->sendResponse($company->toArray(), 'Company added successfully.');    }}...    public function update(Request $request, Company $company)    {        $input = $request->all();        $validator = Validator::make($input, $this->validation_rules);        if($validator->fails()){            return $this->sendError('Validation error.', $validator->errors());        }        $company->update($input);        return $this->sendResponse($company->toArray(), 'Company updated successfully.');    }我希望更新公司表中記錄1 country_id字段,以便它與有效載荷匹配(因此從100到200),但這并沒有發(fā)生。我可以編輯前端邏輯,以便僅發(fā)送有效負(fù)載中的country_id,因?yàn)槲也淮蛩愀聡?guó)家/地區(qū)表,并且所有這些附加信息都是多余的,但我想知道如何使用Laravel在控制器中管理它。你介意幫我嗎?提前致謝。
查看完整描述

1 回答

?
弒天下

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

如果您希望它現(xiàn)在與代碼一起使用,則需要在要發(fā)送的根 JSON 對(duì)象中具有該對(duì)象。因?yàn)檫@是您填寫id的方式。在我看來(lái),這不是最好的方法,但這就是為什么您的更新目前不起作用的原因。country_id


{

    "name": "something",

    "blablabla": "blablabla3",

    "country_id": 200,

    ...

我真的很喜歡發(fā)送完整對(duì)象的方法。通常填寫id是不好的,因?yàn)樗鼤?huì)干擾關(guān)系的工作方式。Laravel會(huì)在你交往時(shí)設(shè)置你的關(guān)系,如果沒有,你不能保證在填完后有正確的關(guān)系。


因此,我將獲取ID并將國(guó)家對(duì)象與公司相關(guān)聯(lián)。在與此類似的邏輯中。


// only fill non relation fields, fill used as save is needed after associate()

$company->fill($request->only(['name', 'blabla']));


$company->country()->associate(Country::find($request->get('country')['id']));


//associate does not save

$company->save();


查看完整回答
反對(duì) 回復(fù) 2022-09-17
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽

添加回答

舉報(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)