使用Laravel中数组的输入编写动态构建的PHP表单的正确方法

Proper way to write a dynamically built PHP form with input from array in Laravel

提问人:Wikke 提问时间:7/13/2023 最后编辑:Abdulla NilamWikke 更新时间:7/13/2023 访问量:39

问:

所以我对 Laravel 很陌生,还没有到我有精神带宽来惹 Vue 的地步。 同时,我还在尝试动态构建表单,以使代码更容易看。

我的代码如下所示:

<form action='{{ route('agents.store') }}' method='POST'>
        @csrf

        @php
            $details = ['prop' => 'labelName', ...];
        @endphp

        @foreach ($details as $data => $label)
            <div class="{{ $data }}">
                <label for="{{ $data }}">
                    {{ $label }}:
                </label>
                <input type="text" name="{{ $data }}" id="{{ $data }}" value="{{ old('{{$data}}') }}">
                @error('{{ $data }}')
                    {{ $message }}
                @enderror
            </div>
        @endforeach

现在,这似乎工作正常。但是,当我保存它并且 VSC 的格式选项拒绝时,我确实会收到错误。 我认为这是因为value="{{ old('{{$data}}') }}"

基本上是动态插入变量的加倍努力。

有没有一种合适的方法可以在此期间(在学习可能 Vuejs 之前)构建我的表单?这个表单需要 15 个输入,它变得非常混乱。

提前亲切的问候。

我尝试过旧的,值得信赖的SO和Google。除其他外,我找到了这篇可靠的帖子,但尝试不同的撇号和勾号只会导致错误消息的变化

解析错误:语法错误,在第 1 行> 1 上期望“)” | |^

old('') 需要撇号,所以我在 old() 和数组中添加了额外的不同类型的类型,但我不断得到对同一错误的细微变化。

PHP Laravel 染撇 HTML 渲染

评论

2赞 kris gjika 7/13/2023
value="{{ old('{{$data}}') }}"为什么是双倍?你已经在第一个 .尝试{{}}{{}}value="{{ old($data) }}"
1赞 Wikke 7/13/2023
干杯,@krisgjika我现在觉得有点傻,但这确实奏效了。在文档示例中,我的印象是 old('username') 期望撇号能够使其发挥作用,因此我需要加倍努力创建一个变量而不是摆脱它们。像魅力一样工作。

答:

0赞 Wikke 7/13/2023 #1

我不知道这是否是结束我问题的正确方法,但有了@krisgjika的回答,我就准备好了......

评论

0赞 Nijeesh Joshy 7/16/2023
这不应该是一个答案