Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Laravel中有没有一种优雅的方法来参数化引导模态?_Laravel_Bootstrap Modal - Fatal编程技术网

在Laravel中有没有一种优雅的方法来参数化引导模态?

在Laravel中有没有一种优雅的方法来参数化引导模态?,laravel,bootstrap-modal,Laravel,Bootstrap Modal,我目前正在Laravel中设置一个视图,其中包含订单的DataTable,每行包含订单的数据,以及一个更新其状态的按钮。调用此操作会弹出一个带有必要表单参数的模式窗口。这就是我认为我必须根据所选行的数据更新一次性包含的模式的地方。通过为调用模态的按钮添加Javascript事件监听器,从受影响的行中读取数据并将其插入模态中,这样做非常简单 $(document).on("click", "a.order_status_update", function () { var order_id

我目前正在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...
});
但是除了它看起来像是一个相当不干净的解决方案之外,我还必须更新表单action route,它包含要更新的订单的ID,但此时已经由刀片引擎编译

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

有人知道这个问题的理想解决方案吗?我自己用Javascript生成路由是更好,还是改为使用固定路由并用POST数据传输ID更好?对于模态参数化有更好的解决方案吗


IIRC有一种方法可以通过控制器通过AJAX请求生成拟合模型,尽管我不确定这应该如何工作。

类似这样的东西怎么样:

                @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作为$data)
{{$data->location}
{{$data->address}
{{$data->city}
{{$data->time}
{{$data->date}
//将所有数据与$data一起放在此处
@endforeach

基本上,每次通过foreach循环,您都在创建一个模式,其中包含由唯一id访问的特定$data。

类似这样的内容如何:

                @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作为$data)
{{$data->location}
{{$data->address}
{{$data->city}
{{$data->time}
{{$data->date}
//将所有数据与$data一起放在此处
@endforeach

基本上,每次通过foreach循环,您都在创建一个模式,其中包含由唯一id访问的特定$data。

我在Laravel应用程序中遇到过类似的情况。我尝试的是,在click处理程序中,对后端执行ajax调用以更新记录,如果成功,则刷新数据表。在某些情况下,我需要发送的字段很少,我将它们绑定到FormData中,否则只是ajax post请求的一个参数。您可以在web.xml中将参数声明为可选的,然后使用laravel部分生成路径,比如var Url={{'route(order_update)}}+'/'+id;我在Laravel应用程序中遇到了类似的情况。我尝试的是,在click处理程序中,对后端执行ajax调用以更新记录,如果成功,则刷新数据表。在某些情况下,我需要发送的字段很少,我将它们绑定到FormData中,否则只是ajax post请求的一个参数。您可以在web.xml中将参数声明为可选的,然后使用laravel部分生成路径,比如var Url={{'route(order_update)}}+'/'+id;似乎是一个合法的解决方案,尽管这将简单地增加模态本身。因为我使用的是Laravel DataTables(它通过AJAX提取数据),所以我必须用数据呈现模式服务器端,我怀疑如果我必须为每一行提取额外的HTML块,这可能会拖累性能。。。但是现在让我看看它是如何工作的。看起来是一个合法的解决方案,尽管这将简单地增加模态本身。因为我使用的是Laravel DataTables(它通过AJAX提取数据),所以我必须用数据呈现模式服务器端,我怀疑如果我必须为每一行提取额外的HTML块,这可能会拖累性能。。。但现在让我看看结果如何。