无法在 Laravel 的编辑表单中检索旧数据

Posted

技术标签:

【中文标题】无法在 Laravel 的编辑表单中检索旧数据【英文标题】:Unable to Retrieve Old Data in Edit Form in Laravel 【发布时间】:2019-08-29 01:17:56 【问题描述】:

我想在按下编辑按钮时获取该 ID 的数据。我的所有字段都为空。我正在使用同一页面进行创建和编辑。

更新功能

 public function update(Request $request)


    $user = User::findOrFail($request->user_id);

    $user->update($request->all());

    return back();

编辑按钮

 <div class="modal fade" id="edit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">Edit user</h4>
            </div>
            <form action="route('user.update','test')" method="post">
                method_field('patch')
                csrf_field()
                <div class="modal-body">
                    <input type="hidden" name="user_id" id="cat_id" value="">
                    @include('admin.form')
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    <button type="submit" class="btn btn-primary">Save Changes</button>
                </div>
            </form>
        </div>
    </div>
</div>

admin.form

<div class="form-group">
                <label for="name">Name</label>
                <input type="text" class="form-control" name="name" id="name">
            </div>

            <div class="form-group">
                <label for="email">Email</label>
                <input type="text" class="form-control" name="email" id="email">
            </div>

我在其他一些表上使用相同的功能技术,有些工作正常,有些则不行。谁能告诉我我在哪里做错了。

【问题讨论】:

这是一种传递参数的方式。记得也要更新你的路线
在这个question 中给出了你的答案 @Lim Kean Phang 它尝试过但没有用... 【参考方案1】:

你应该传递你的变量 $用户

回到你的视图,这样你就可以再次传播它:

<input type="text" class="form-control" name="name" id="name" value=$user->name>

所以你应该这样做

public function update(Request $request)
    $user = User::findOrFail($request->user_id);
    $user->update($request->all());
    return back();

return view ('admin.form, compact('user'));

或者您也可以使用会话,以便您可以检索数据,然后将其显示到您希望显示的刀片

【讨论】:

【参考方案2】:

https://laracasts.com/discuss/channels/laravel/how-to-pass-id-from-controller-to-route-and-route-to-controller?page=0 这是您必须仔细阅读的链接,当您单击编辑按钮时,您必须将用户 ID 传递给模式,然后您将使用该特定用户 ID 设置查询,然后您可以在模型中显示数据,以及链接中提供的所有操作方法。 你也可以使用java脚本来做这里的链接。 Passing data to a bootstrap modal

【讨论】:

以上是关于无法在 Laravel 的编辑表单中检索旧数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 - 显示带有旧数据输入以及数据库信息的编辑表单

Eloquent - 编辑表格行并返回新结果数据 - 检索旧数据

选择字段旧值无法在 laravel 中显示

在 laravel 5 中的表单请求验证后传递旧输入

在 laravel 表单中添加默认值以选择列表

Laravel 重新提交表单验证仍然显示旧输入值