Поле Backpack crud, которое отображает включенную отфильтрованную таблицу

Мне нужно создать новый тип поля, назовем его included_table. Если в модели сотрудников у меня есть поле типа select2 из модельных отделов, в отделах я хочу иметь поле типа include_table, которое отображает таблицу сотрудников из этого отдела, так же, как это делает crud.

Есть ли простой способ сделать это? Или с чего лучше начать?

Спасибо.


person Emil    schedule 12.07.2017    source источник


Ответы (1)


Я не думаю, что есть простой способ сделать это. Вы должны были бы кодировать его самостоятельно. Вы можете начать с типа поля table, но на этом далеко не уедешь.

Это потому, что это намного сложнее, чем кажется на первый взгляд. Имейте в виду, что формы создания/обновления Backpack работают с обновлением; если вы поместите таблицу в один из них, ожидаемым поведением может быть только «сохранение» информации при нажатии последней кнопки «сохранить»; но вы, вероятно, не можете сделать это для вложенного объекта, потому что вы сохраните его с помощью AJAX. Кроме того, вам нужно самостоятельно создать всю эту функциональность AJAX, включая проверку. Это ничуть не сложнее, чем использовать старый добрый Laravel — точно так же. Но Рюкзак в этом плане мало поможет.

При этом вам, вероятно, было бы лучше просто поместить кнопку в представлении списка для каждого отдела, чтобы редактировать его сотрудников. Это намного проще сделать, если вы следуете руководству по вложенным ресурсам.

Надеюсь, поможет.

person tabacitu    schedule 13.07.2017
comment
Мне не нужна полная функциональность для включенной таблицы. Основная проблема заключается в отображении этой таблицы в виде поля (а не столбца), здесь для этого поля ничего не сохраняется. Там будет кнопка добавления записи и кнопки редактирования записи для включенных записей, но они переведут пользователя в обычную форму для этой формы. Также потребуется кнопка обновления (ajax) для таблицы (только для отображения), чтобы обновить ее после добавления или редактирования перекрестной записи. Спасибо. - person Emil; 13.07.2017
comment
Я понимаю. Пока нет готового решения, извините, вам придется создать его самостоятельно. - person tabacitu; 09.08.2017