Laravel обновляет порядок таблицы с разбитыми на страницы данными - PullRequest
0 голосов
/ 14 мая 2019

Привет. Все, что я пытаюсь установить порядок в таблице MySQL. Структура таблицы выглядит так, как показано ниже, и содержит более 500 записей. Я создаю приложение в laravel 5.5:

| Id |  Name  |   surname  | orderby |    address   | created_by | updated_by |
|:--:|:------:|:----------:|:-------:|:------------:|:----------:|:----------:|
|  1 |  Alice | wonderland |    1    | Disney world |      1     |      1     |
|  2 | donald |    duck    |    2    | Disney world |      1     |      1     |
|  3 | mickey |    mouse   |    3    | Disney world |      1     |      1     |
|  - |  ----  |    ----    |   ---   |     ----     |    ----    |    ----    |
|  - |  ----  |    ----    |   ---   |     ----     |    ----    |    ----    |

У меня есть пагинацияна основе упорядочения по столбцу orderby, как показано в таблице выше, теперь у меня есть контроллер, в котором маршрут настроен на обновление упорядочения таблицы по столбцу orderby, поскольку результаты разбиваются на страницы, обновляются только те строки, которыенаходятся в разбивке по страницам.но остальные 480 записей среди этих 500 записей не обновляются, я использовал плагин https://jqueryui.com/sortable/ с функциональностью ajax и код ниже:

 $(document).ready(function () {
    $( "#sortable" ).sortable({
        placeholder : "ui-state-highlight",
        update  : function(event, ui){
            var page_id_array = new Array();
            $('#sortable tr.sort').each(function(){
                page_id_array.push($(this).data("id"));
            });
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                url:"{{route('order.by.name.table')}}", //my route which is mapped to a controller function
                method:"POST",
                data:{order:page_id_array},
                success:function(data){
                    toastr.success("Successfully updated order.");
                }
            });
        }
    });
});

и ниже - функция моего контроллера обновляет порядокмои записи:

public function orderByNameTable(Request $request)
{
    $items = $request->input('order');
    foreach ($items as $index => $id) {
        $item = \App\Models\NameTable::findOrFail($id);
        $item->orderby = $index + 1;
        $item->id = $id;
        $item->save();
    }
    return $item;
}

И моя модель выглядит примерно так:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class NameTable extends Model
{
    public function save(array $options = [])
    {
        if(!isset($this->created_by)){
            $this->created_by = \Auth::user()->id;
        }
        $this->updated_by = \Auth::user()->id;

        parent::save();
    }
}

как я могу обновить остальные 480 порядков записей в таблице для столбца orderby.

предложите, пожалуйста, бизнес-логику.

Спасибо за ваше время и помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...