如何使用两个值的总和重定向我的表单并将其显示在Laravel的只读输入字段中?

问题描述 投票:1回答:3

我正在制作一个简单的形式两个和两个值。我想在请求通过后在readonly输入中显示计算结果。如果我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();
    }
}

预期将是readonly中两个输入的总和。但提交后,它仍然是空的。我究竟做错了什么?

php laravel
3个回答
0
投票

当您使用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


0
投票

在重定向之前添加计算值,

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();
    }
}

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

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

<input type="number" name="calculated" value="{{ old('calculated') }}" readonly>
© www.soinside.com 2019 - 2024. All rights reserved.