首页 > 解决方案 > Laravel 6 - 控制器中的更新功能运行但模型未传递给控制器

问题描述

我想从background_check_batches表中更新一条记录。所做的是列出所有记录,每个记录都有一个status可以更改的属性(列)。单击该status值将提示弹出模式以更新该值。由于有多个记录共享一个模型,因此使用js更改表单的操作。这里的问题是提交表单时,收到了请求的数据,但BackgroundCheckBatch没有收到模型 ID。我以前做过这种相同的任务,但由于某种原因它不起作用。以下是我的代码。

网页.php

Route::put('/admin/dashboard/background-request/{backgroundrequest}', 'BackgroundCheckBatchController@update')->name('update');

状态.blade.php ()

{!! Form::open(['action' => ['BackgroundCheckBatchController@update', -1], 'method' => 'POST', 'id' => 'adminBackgroundCheckStatusModalForm']) !!}

            @csrf
            @method("PUT")

            <div class="modal__content">
                <select class="table_custom_select" id="Status" name="status">
                        <option class="table_custom_select_pending" value="Pending">Pending</option>
                        <option class="table_custom_select_progress" value="In Progress">In Progress</option>
                        <option class="table_custom_select_complete" value="Completed">Completed</option>
                </select>
            </div>

            <div class="modal__footer">
                <button type="submit" class="button button_size_m button_theme_primary">Proceed</button>
            </div>

{!! Form::close() !!}

背景检查批处理控制器

public function update(Request $request, BackgroundCheckBatch $backgroundCheckBatch) {
    return $backgroundCheckBatch;
}

return $backgroundCheckBatch;输出和空数组,[] 我希望它返回BackgroundCheckBatchURL 中提供的 id

如果 I return $request;,它将像这样输出:

{
    _token: "Ax789Dr4VXFVE1vpjtKhEWdBjdCZqARDaNQnk7K8",
    _method: "PUT",
    status: "Completed"
}

如果我没有提供足够的细节,请通知我

标签: phplaravelbackendlaravel-6

解决方案


如果要使用路由模型绑定,更新函数中的参数名称应与路由参数匹配:

public function update(Request $request, BackgroundCheckBatch $backgroundrequest) {
    return $backgroundrequest;
}

推荐阅读