【问题标题】:How to update specific row using modal Laravel 5.8如何使用模态 Laravel 5.8 更新特定行
【发布时间】:2019-09-09 04:07:16
【问题描述】:

我正在尝试使用 modal 更新特定行。但是我不知道如何将行 ID 的值传递给 route 参数。

这是update 表单。

           <form action="{{route('subcategory.update', 'idhere')}}" method="POST">
                @method('PATCH')
                @csrf
                    <div class="modal-body">
                        <label for="editname">New sub-category name:</label>
                        <input type="text" name="editname" id="editname" class="form-control">
                        <input type="text" name="editid" id="editid" value="" hidden>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                        <button class="btn btn-primary" type="submit">Save changes</button>
                    </div>
            </form>

编辑按钮

<button class="btn btn-secondary btn-sm" data-myid="{{$item->id}}" 
        data-mytitle ="{{$item->name}}"
        data-target="#editsub" data-toggle="modal">Edit</button>

这是控制器

    public function update(Request $request, Subcategory $subcategory)
    {
    // return $request;

    Subcategory::where('id',$request->editid)->update([
        'name' => $request->editname
    ]);

    return back();
    }

【问题讨论】:

  • 你可以通过控制器,我可以看到你的表单加载控制器功能吗?
  • 我刚刚开始工作了。我将modal 放在foreach 函数中。就性能而言可以吗???
  • 您可以更新您的问题,然后其他人将能够轻松回答您的问题。
  • 如果您只有几行,则为每一行复制模态 html 就可以了。如果你有很多,或者行数会随着时间的推移而增长,你很快就会有一个巨大的 html 页面,加载和使用都很慢。更好的选择是只有 1 个模式,并在单击按钮时使用 Javascript 更新它。事实上,您似乎已经在尝试这个了,您的按钮上有一个data-myid。这是一种非常常见的方法,这里有很多关于它的例子 - here's one

标签: laravel laravel-5 bootstrap-modal


【解决方案1】:

当您在此处传递 id 并且您的模型名称为 subcategory.php 时,您将在控制器中获得 db 记录。

 <form action="{{route('subcategory.update', $subcategory )}}" method="POST">

或者你也可以关注

<form action="{{route('subcategory.update', $subcategory->id )}}" method="POST">

您的路线中应该有 {subcategory} 以进行预加载。之后,您可以在代码中执行以下操作。

public function update(Request $request, Subcategory $subcategory)
{

    //variable $subcategory has the db record
    $subcategory->update(['name' => $request->only('editname')]);

    return back();
}

【讨论】:

    【解决方案2】:

    如果我理解正确,您可以将item id 存储在

    <input type="text" name="editid" id="editid" value="{$item->id}" hidden> 
    

    由于您使用的是POST 请求,您可以轻松地从请求中获取item id

    喜欢你帖子中的那个:

    $request->input('editid');  
    

    【讨论】:

      【解决方案3】:

      请先尝试在输入框隐藏字段中传递id

      【讨论】:

        猜你喜欢
        • 2020-04-08
        • 2020-03-03
        • 2019-08-29
        • 1970-01-01
        • 2020-05-11
        • 2019-09-18
        • 2020-01-04
        • 1970-01-01
        • 2020-05-10
        相关资源
        最近更新 更多