我的输入名称如下:
<input name="settings[custom_plan.breakpoint1]"/>
如何检索其 旧
输入?由于点表示法适用于输入数组,但不适用于实际名称。因此,old('settings[custom_plan.breakpoint1]')
不起作用,old('settings.custom_plan\.breakpoint1')
也不起作用(在验证表示法中转义点是有效的)。
如何检索输入的旧值?
谢谢!
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);
}
}
<input value="{{ old('settings') ? old('settings')['custom_plan.breakpoint1'] : $custom_plan->breakpoint1 }}"/>
或者类似的检查(一开始old('settings')
会返回null
,所以我无法从中提取数组项)。 - Giedrius