【问题标题】:HTML Input name attribute as array - how to access values in laravelHTML输入名称属性作为数组 - 如何访问laravel中的值
【发布时间】:2020-11-09 09:30:31
【问题描述】:

我最近在命名 html 输入字段时使用了数组表示法。例如

<input type="text" name="user[$userId][licenseStatus]">

我以前从未使用过这种语法,虽然它非常方便,但在使用 Laravel 时,我看不到从视图中访问会话中保存的数据的好方法。

例如,当发生验证失败时,我可能希望像这样将旧数据检索回输入:

<input type="text" name="user[$userId][licenseStatus]" value="{{session()->getOldInput(user[$userId][licenseStatus], '')}}">

但这显然不起作用,因为名称字段上的数组语法意味着数据保存在会话中的数组中,如下所示:

[
_old_input => user[
              32=>licenseStatus = 'xyx',
              12=>licenseStatus = 'xyz'
             ]
]

那么有没有一种聪明的方法来检索旧的输入值?

谢谢,

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    如果发生验证错误,在控制器中使用输入值进行重定向。例如:

    return redirect('form')->withInput();
    

    然后在表单本身中,你可以把表单值像这样:

    <input type="text" name="user[$userId][licenseStatus]" value="{{ old('user.$userId.licenseStatus') }}">
    

    您可以仔细查看 laravel 文档:https://laravel.com/docs/8.x/requests#flashing-input-then-redirecting

    【讨论】:

    • 感谢 Aceraven!我完全忘记了 Laravel 的点语法。我是使用框架的新手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多