Оптимизировать запрос в отношениях Laravel Backpack n-n

Я создаю бэкэнд-панель для веб-сайта с Laravel Backpack. Это действительно хорошо, но я заметил, что запросы на отношения очень дороги.

У меня есть две модели: Товар а также Центр со многими отношениями между ними. В моем CenterCrudController я определил поле следующим образом:

$this->crud->addColumns([
// More fields...
[
'label' => 'Products',
'type' => 'select2_multiple',
'name' => 'products', // the method that defines the relationship in your Model
'entity' => 'products', // the method that defines the relationship in your Model
'attribute' => 'name', // foreign key attribute that is shown to user
'model' => 'App\Models\Product', // foreign key model
'pivot' => true, // on create&update, do you need to add/delete pivot table entries?
],
// More fields...
]);

Он отлично работает, показывая несколько полей со связанными моделями. Но используемый запрос SELECT * FROM products, что очень дорого (таблицы продуктов имеют тысячи записей с около 25 столбцами).

В этом примере мне нужно только Я бы а также название поля. Я ищу что-то вроде Query Builder select() метод.

Есть ли способ оптимизировать этот тип запроса?

Заранее спасибо!

0

Решение

Не уверен, что это действительно ответ, но я все равно выложу.

Лучшее решение (как указано @tabacitu) использовало select2_from_ajax field, Это не замедляет загрузку страницы и делает ajax-запрос на получение данных только тогда, когда пользователь нажимает на поле выбора.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector