使用laravel中的bootstrap模型快速编辑数据库行

时间:2016-12-13 13:07:07

标签: php laravel blade laravel-5.3

我创建了一个显示Carousel中使用的所有图像的视图。这是我在控制器中的方法 我的编辑方法:

 public function edit($id)
{
    $carousel = Carousel::find($id)->first();
    return view('admin.partials._edit-modal.blade');
}

我的编辑路线:

Route::get('carousel.edit/{id}',['as' => 'carousel.edit', 'uses' => 'LinkController@edit']);

这是我在视图中显示它的代码:

@foreach($carousels as $carousel)
  <div class="col-xs-6 col-md-3 grid">
    <a href="{{ url($carousel->path) }}" class="thumbnail" data-lity>
      <img class="img-responsive" src="{{ $carousel->path }}" alt="">
    </a>
  </div>
@endforeach

我已经设置了一个按钮来打开一个模型,该模型显示所选图像和表单以编辑图像名称[表格尚未设置,仅显示图像]。 我的型号代码:

<div class="modal fade" id="myModal" role="dialog">
  <div class="modal-dialog"> 
    <div class="modal-content">
      <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
      <h4 class="modal-title">Modal Header</h4>
      </div>
     <div class="modal-body">
      <img class="img-responsive" src="{{ $carousel->path }}" alt="">
     </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
  </div>      
</div>

代码中没有错误,但是当单击编辑按钮时,它始终显示表格的最后一个图像。是否单击第一个,第二个或任何图像的编辑按钮。模型始终显示最后一张图像。

1 个答案:

答案 0 :(得分:0)

当使用foreach()循环显示图像时,您应该包含编辑该图像的按钮,包括图像的ID,并将此ID传递给模态。像这样:

<button type="button" class="edit-image" data-toggle="modal" data-target="#myEditImageModal" data_value="{{ $image->id }}"> Edit</button>

然后添加一个脚本,以便在单击该按钮时传递该特定ID。你可以用js:

完成这个
<script>
// pass image id to modal
$('.edit-image').click(function() {
  $("#image_id").val($(this).attr('data_value'));
});
</script>

最后,模态将接收该ID,您可以将其存储在表单内的隐藏输入字段中。像这样:

<div id="myEditImageModal" tabindex="-1" role="dialog" class="modal fade">
...
<form>
...
<input type="hidden" name="image_id" id="image_id">
...
</form>
...
</div>
  • 将模态放在foreach循环之外。