簡體   English   中英

如何使用兩個值的和來重定向表單並將其顯示在Laravel中的只讀輸入字段中?

[英]How can I redirect my form with the sum of two values and show it in a readonly input field in Laravel?

我正在做一個簡單的形式,兩個值相加兩個值。 請求通過后,我想在只讀輸入中顯示計算結果。 如果我dd()兩個字段的和,則該和是正確的。 但是我無法將總和傳遞回視圖。

我在網上搜索,發現沒有什么希望。 與Laravel文檔相同。

形成:

<p>
<input type="number" name="numberOne" value="{{ old('numberOne') }}">
</p>
<p>
<input type="number" name="numberTwo" value="{{ old('numberTwo')}}">
</p>
<p>
<input type="number" name="calculated" value="{{ isset($calculated) ? $calculated : '' }}" readonly>
</p>

控制器:

class CalculationsController extends Controller
{
    public function process(Request $request) {
        $numberOne = $request->input('numberOne');
        $numberTwo = $request->input('numberTwo');

        $calculated = $numberOne + $numberTwo;

        dd($calculated);

        return redirect('/')->withInput();
    }
}

預期將是只讀中兩個輸入的總和。 但是提交后,它仍然是空的。 我究竟做錯了什么?

$request->merge(['calculated' => $caluclated]);

return redirect('/')->withInput($request->all());

<input type="number" name="calculated" value="{{ old('calculated') }}" readonly>

當您使用redirect()函數時,變量$calculated不會傳遞給視圖。 我認為最好的解決方案是通過Session。 您的重定向必須是這樣的:

return redirect('/')->withInput()->with('calculated', $calculated);

with()函數用於通過會話傳遞數據。 要在您的視圖中檢索它,請執行以下操作:

<input type="number" name="calculated" value="{{ session()->has('calculated') ? session('calculated') : '' }}" readonly>

有關文檔,請檢查: https : //laravel.com/docs/5.7/redirects#redirecting-with-flashed-session-data https://laravel.com/docs/5.7/session#retrieving-data

在重定向前添加計算值,

class CalculationsController extends Controller
{
    public function process(Request $request) {
        $numberOne = $request->input('numberOne');
        $numberTwo = $request->input('numberTwo');

        $calculated = $numberOne + $numberTwo;
        $request->merge(['calculated' => $calculated ]);

        // dd($calculated);

        return redirect('/')->withInput();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM