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

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

在 Laravel 5.8 中提交后,使用 @error 指令從多個(gè)輸入字段中定位前一個(gè)輸入字段

在 Laravel 5.8 中提交后,使用 @error 指令從多個(gè)輸入字段中定位前一個(gè)輸入字段

PHP
撒科打諢 2022-01-14 16:57:22
Laravel 5.8.13中引入了新的 @error 指令。所以,而不是這樣做:// old@if ($errors->has('email'))     <span>{{ $errors->first('email') }}</span> @endif您現(xiàn)在可以執(zhí)行此操作// new@error('email')     <span>{{ $message }}</span> @enderror但是,我在嘗試僅針對(duì)幾個(gè)類似輸入字段中出現(xiàn)錯(cuò)誤的輸入字段時(shí)遇到問(wèn)題。這些字段是相似的,因?yàn)樗鼈兙哂邢嗤拿Q。但它們也采用不同的形式,并具有不同的提交按鈕。我的 html 刀片文件設(shè)置有從@forelse語(yǔ)句生成的多個(gè)輸入。我創(chuàng)建了一個(gè)簡(jiǎn)單的錯(cuò)誤檢查來(lái)檢查是否輸入了負(fù)數(shù)并重定向回帶有錯(cuò)誤消息的同一頁(yè)面。該@error指令還用于將自定義類插入到目標(biāo)輸入字段以進(jìn)行樣式設(shè)置。@forelse($accounts as $account)    <form method="POST" action="{{ route('account.update', $account->id) }}">        @csrf        <div>            <input type="number" name="credit" class="@error('credit') is-invalid @enderror" required>            <input type="submit" class="btn" value="ok">            @error('credit')                <span class="invalid-feedback" role="alert">                    <strong>{{ $message }}</strong>                </span>            @enderror        </div>    </form>@empty@endforelse表單提交給update()方法AccountController.phppublic function update(Request $request, Account $account){    if($request->input('credit') < 0)    {        return back()->withErrors(['credit'=>'enter a positive amount']);    }    // ... other logic}問(wèn)題是,當(dāng)在一個(gè)輸入字段中輸入負(fù)數(shù)時(shí),錯(cuò)誤消息會(huì)針對(duì)每個(gè)具有相同名稱的輸入顯示,即使它們的形式不同也是如此。我認(rèn)為使輸入名稱唯一可以解決這個(gè)問(wèn)題,但這會(huì)使我的后端邏輯比所需的更復(fù)雜。無(wú)論如何,在重定向后只為目標(biāo)輸入顯示錯(cuò)誤消息,而不必為每個(gè)輸入字段使用唯一名稱?
查看完整描述

2 回答

?
哈士奇WWW

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

有趣的是,該 @error 指令沒(méi)有通過(guò)輸入名稱以編程方式綁定到任何輸入字段。它僅通過(guò)接近度與輸入字段在空間上相關(guān),并且可以放置在頁(yè)面上的任何位置。


@error此外,只要將相同的字符串傳遞給withErrors()控制器中的調(diào)用,您就可以方便地使用指令中的任何字符串。


因此,解決在多個(gè)輸入中定位適當(dāng)輸入的問(wèn)題變得像使用任何唯一字符串(不一定是目標(biāo)輸入名稱)作為withErrors()方法調(diào)用中的鍵并通過(guò)將相同的字符串傳遞給@error指令來(lái)檢索錯(cuò)誤消息一樣簡(jiǎn)單。就我而言,我選擇使用帳戶 ID 作為唯一字符串。


在AccountController.php:


public function update(Request $request, Account $account)

{

    if($request->input('credit') < 0)

    {

        return back()->withErrors([$account->id=>'enter a positive amount']);

    }

    // ... other logic

}

在 html 刀片模板中:


@forelse($accounts as $account)

    <form method="POST" action="{{ route('account.update', $account->id) }}">

        @csrf

        <div>

            <input type="number" name="credit" class="@error($account->id) is-invalid @enderror" required>

            <input type="submit" class="btn" value="ok">

            @error($account->id)

                <span class="invalid-feedback" role="alert">

                    <strong>{{ $message }}</strong>

                </span>

            @enderror

        </div>

    </form>

@empty

@endforelse

注意:在任何指令中使用不存在的鍵@error會(huì)破壞其他 @error 指令的代碼,并且不會(huì)導(dǎo)致顯示錯(cuò)誤消息。


查看完整回答
反對(duì) 回復(fù) 2022-01-14
?
守著星空守著你

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

解決方案將執(zhí)行以下操作:

  • 使用提交按鈕的值將值/發(fā)布的表單存儲(chǔ)在變量中

  • 放棄錯(cuò)誤指令并使用舊版本

  • 將舊版本與變量結(jié)合起來(lái)檢查你是否有正確的形式

你會(huì)得到這樣的東西:

@if ($errors->has('email') && $submitted_form_identifier === $form_identifier) 

    <span>{{ $errors->first('email') }}</span> 

@endif


查看完整回答
反對(duì) 回復(fù) 2022-01-14
  • 2 回答
  • 0 關(guān)注
  • 311 瀏覽

添加回答

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