Laravel用点表示法获得旧输入

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

我的输入名称如下:<input name="settings[custom_plan.breakpoint1]"/>

如何检索old输入?由于点表示法适用于输入数组,但不适用于实际名称。所以old('settings[custom_plan.breakpoint1]')不起作用,也没有old('settings.custom_plan\.breakpoint1')(逃避点在验证表示法中工作)。

如何检索输入的旧值?

谢谢!

php laravel
1个回答
1
投票

您可以使用old()获取整个数组,然后“手动”提取值:

{{ old('settings')['custom_plan.breakpoint1'] }}

不幸的是,没有办法使用点符号。 old()助手使用Illuminate\Support\Arr@get方法,并且有一段关键代码:

foreach (explode('.', $key) as $segment) {
    if (static::accessible($array) && static::exists($array, $segment)) {
        $array = $array[$segment];
    } else {
        return value($default);
    }
}

正如您所看到的,它首先做的是它通过点分割键,然后搜索嵌套的数组值。因此,无法将输入名称中的点解析为分隔符。

© www.soinside.com 2019 - 2024. All rights reserved.