是否有一种优雅的方法可以在Laravel中参数化Bootstrap模态?

时间:2018-09-24 16:07:53

标签: laravel bootstrap-modal

我目前正在Laravel中建立一个视图,其中包含一个用于订单的DataTable,每行包含一个订单的数据,还有一个用于更新其状态的按钮。调用此操作会弹出一个带有必要表单参数的模式窗口。那就是我认为必须根据所选行的数据更新一次性包含模式的地方。通过为调用模式的按钮添加Javascript事件侦听器,从受影响的行中读取数据并将其插入到模式中,来做到这一点非常容易。

$(document).on("click", "a.order_status_update", function () {
    var order_id = $(this).data('id');
    var data = table.row('#dt-id-' + order_id).data();
    // manipulating modal data...
});

但是,除了对我来说这似乎是一个很不干净的解决方案之外,我还必须更新表单操作路线,该路线包含要更新的订单的ID,但已经由Blade引擎在那时进行了编译点。

<form method="post" action="{{route('orders.status.update', ['order_id' => /*not a fixed value!*/])}}">

有人知道一个理想的解决方案吗?最好自己用Javascript生成路由,还是改用固定路由并通过POST数据传输ID?根本没有更好的参数化模态解决方案吗?

IIRC会提供一种通过控制器通过AJAX请求生成拟合模态的方法,尽管我不确定希望这将如何工作。

1 个答案:

答案 0 :(得分:2)

那这样的事情呢?

                @foreach($datas as $data)
                    <tr data-toggle="modal" data-target="#editData{{$data->id}}">
                        <td>{{$data->location}}</td>
                        <td>{{$data->address}}</td>
                        <td>{{$data->city}}</td>
                        <td>{{$data->time}}</td>
                        <td>{{$data->date}}</td>
                    </tr>

                  <div class="modal" id="editData{{$data->id}}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                 //put all your data in here with $data 
                  </div>
               @endforeach

基本上,每次遍历foreach循环时,您都在创建一个模态,该模态中的特定$ data由唯一ID访问。