【问题标题】:Undefined variable $key未定义的变量 $key
【发布时间】:2021-07-06 00:50:36
【问题描述】:

这是我的 AssignmentController 存储功能。 (这是我的 AssignmentController Store 函数。)这是我的 AssignmentController Store 函数。 (这是我的 AssignmentController 存储功能。)

public function store(Request $request)
{
    $request->validate(array(
        'assignment' => 'array|required',
        'assignment.*.staff_id' => 'required',
        'assignment.*.task_id' => 'required',
        'done_at' => 'sometimes',
    ));

    foreach($request->get('assignment') as $assignment)

        $assignment = Assignment::create(array(
            'staff_id' => $assignment['staff_id'],
            'task_id' => $assignment['task_id'],
            'done_at' => $assignment['done_at'],
        ));



        return redirect()->route('assignments.index')->withSuccess('Done');
}

这是我的 assignment.create 页面(这是我的 assignment.create 页面这是我的 assignment.create 页面)

<form method="post" action="{{route('assignments.store')}}">
        @csrf
        <table>
                <tr>
                    <td>Task Title : </td>
                    <td>
                        <select name="assignment[{{$key}}][task_id] " id="task_id">
                            {{-- <option value="">Select One</option> --}}
                            @foreach ($tasks as $task)

                                <option value="{{ $task->id }}">{{ $task->title }}</option>

                            @endforeach
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Staff Name : </td>
                    <td>
                        <select name="assignment[{{$key}}][staff_id]" id="staff_id" multiple>
                            {{-- <option value="">Select One</option> --}}
                            @foreach ($staffs as $staff)

                                <option value="{{ $staff->id }}">{{ $staff->name }}</option>

                            @endforeach
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Done At :</td>
                    <td><input type="time" name="done_at" class="form-control"></td>
                </tr>
            <td><button class="btn btn-primary" name="submit" type="submit" value="submit" id="submit">Submit</button></td>
        </table>
    </form>

【问题讨论】:

  • 你只需要更改return redirect()-&gt;route('assignments.index', compact('assignment'))-&gt;withSuccess('Done');
  • 我试试这个但显示“未定义的变量 $key”
  • 在您的控制器中的创建方法中,您必须使用键 return view('assignment.create',["key"=&gt;$key]); 返回视图

标签: laravel laravel-5 eloquent laravel-7 laravel-8


【解决方案1】:

您应该将 $key 变量传递给“assignment.create”页面。如果您有用于加载“assignment.create”页面的控制器函数,请通过该函数将 $key 变量传递给视图。

【讨论】:

    猜你喜欢
    • 2014-07-11
    • 2011-06-11
    • 2021-02-27
    • 2015-06-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多