Есть ли изящный способ параметризации модальностей Bootstrap в Laravel? - PullRequest
0 голосов
/ 24 сентября 2018

В настоящее время я настраиваю представление в Laravel, которое содержит таблицу данных для заказов, в каждой строке которой содержатся данные заказа и, среди прочего, кнопка для обновления его статуса.При вызове этого действия появляется модальное окно с необходимыми параметрами формы.Вот где я решил, что мне нужно обновить одноразовый включенный модал в соответствии с данными выбранной строки.Сделать это довольно легко, добавив прослушиватель событий 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...
});

Но помимо этого он выглядит как довольноНечистое решение для меня, я также должен был бы обновить маршрут действия формы, который содержит идентификатор для заказа, который будет обновлен, но был бы уже скомпилирован движком Blade в этот момент.

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

Кто-нибудь знает идеальное решение для этого?Было бы лучше сгенерировать маршрут самостоятельно в Javascript или вместо этого перейти на фиксированный маршрут и передать идентификатор с данными POST?Существуют ли еще лучшие решения для параметризации модов вообще?

IIRC был бы способ сгенерировать модальный фитинг через запрос AJAX через контроллер, хотя я не уверен, как это будет работать.

1 Ответ

0 голосов
/ 24 сентября 2018

Что-то вроде этого:

                @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 вы создаете модал с конкретными $ данными в нем, доступ к которым осуществляется по уникальному идентификатору.

...