【问题标题】:How to properly send input arrays in request?如何正确发送请求中的输入数组?
【发布时间】:2019-08-17 00:16:19
【问题描述】:

我正在维护使用 Blade 模板在 Laravel 中制作的网页。我需要将带有数组模式的表单发送到后端。

该页面用于在教师、科目和他们教授所选科目的班级之间建立关系。 有一个包含所有教师的列表,用户应该选择一个主题并链接到相应的课程。一位教师可以拥有多个科目。

这是刀片:

 @forelse ($teachers as $teacher)
                            <div class="row">
                                <div class="small-12 large-12 column">
                                    <h2>Professor</h2>
                                    <p>{{ $teacher->name }}</p>
                                    <input type="hidden" name="professorId[{{ $teacher->id }}]"
                                        value="{{ $teacher->id }}" required>
                                </div>
                            </div>
                            <div id="materiaTemplate{{ $teacher->id }}" class="row">                                
                                <div class="small-12 large-6 column">
                                    <h2>Matérias</h2>
                                    <select name="professorId[{{ $teacher->id }}][materias][]" required>
                                        <option value=""></option>
                                        @foreach ($subjects as $subject)
                                        <option value="{{ $subject->id }}">{{ $subject->name }}</option>
                                        @endforeach
                                    </select>
                                </div>
                                <div class="small-12 large-6 column">
                                    <h2>Turmas</h2>                               
                                    @forelse ($classes as $class)
                                    <input type="checkbox" id="{{ "turma".$class->id.'-'.$teacher->id }}"
                                        name="professorId[{{ $teacher->id }}][materias][][classes][]"
                                        value="{{ $class->id }}"><label
                                        for="{{ "turma".$class->id.'-'.$teacher->id }}">{{ $class->name }}</label>
                                    @empty
                                    <p>Nenhuma turma cadastrada.</p>
                                    @endforelse
                                </div>
                            </div>
                            <div class="row">
                                <div id="addMateriaButton{{ $teacher->id}}" class="small-12 large-4 column">
                                    <label>
                                        &nbsp;
                                        <button type="button" class="button primary fullWidth"
                                            data-add-element="materiaTemplate{{ $teacher->id }}"
                                            data-insert-before="addMateriaButton{{ $teacher->id }}">
                                            <img src="<?= asset('img/site') ?>/icons/svg/plus.svg" alt="Icon plus"
                                                class="buttonIcon buttonIconLeft">
                                            Matéria
                                        </button>
                                    </label>
                                </div>
                            </div>
                            @empty
                            <div class="small-12 large-12 column">
                                <h2>Nenhum professor cadastrado.</h2>
                            </div>
                            @endforelse

我想拥有这样的东西:

[professorIds] => Array
        (
            [1] => Array
                (
                    [subjects] => Array
                        (
                            [id] => 2
                            [classes] => Array
                                (                                    
                                    [0] => 1

                                )
                        )
                )

        )

需要一点帮助。

【问题讨论】:

  • 您的隐藏输入将professorId[{{ $teacher-&gt;id }}] 设置为整数,但随后您尝试在以后的输入中使用professorId[{{ $teacher-&gt;id }}] 作为数组。

标签: php html arrays laravel laravel-blade


【解决方案1】:

您可以像这样发布多维数组:

数组名[FIRST_LAYER][SECOND_LAYER]...

<input name="teacher["Chemistry"]["John Well"]">

【讨论】:

    猜你喜欢
    • 2015-12-22
    • 2015-08-07
    • 2022-07-05
    • 2018-05-14
    • 1970-01-01
    • 2020-12-11
    • 2019-12-21
    • 2012-07-28
    • 2016-07-03
    相关资源
    最近更新 更多