Laravel使用点符号

时间:2018-03-01 18:12:45

标签: php laravel

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

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

如何检索输入的旧值?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用old()获取整个数组,然后使用&#34;手动&#34;提取值:

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

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

相关问题