Как использовать подготовленную выписку с данными для импорта в Excel n Laravel - PullRequest
0 голосов
/ 17 мая 2019

Мой вопрос о лучшей практике. У меня есть три таблицы:

  • Пользователи (ID, ИМЯ)
  • Карты (ID, НОМЕР)
  • Пользовательские карты (USER_ID, CARD_ID)

Также у меня есть страница с формой, куда я могу импортировать файл Excel с данными. Структура Excel:

-------------------------------
| Users's name |  Card number |
-------------------------------
| User A       |  12345       |
-------------------------------
| User B       |  67889       |
-------------------------------

Я хочу заполнить свою третью таблицу Пользовательские карты .

Вопрос в том, как проверить, есть ли в БД пользователи и карточки?

Конечно, я знаю, что я могу сделать, следуя:

// check user exists
$user = User::where('name', $userName)->first();

// check card exists
$card = Card::where('number', $cardNumber)->first();

Но это не выглядит хорошо для сервера, потому что код работает без какой-либо оптимизации. Итак, можно ли использовать оператор Prepared внутри цикла Excel следующим образом:

$statement = $me->getPdo()->prepare($query);

или вы можете порекомендовать мне другой лучший способ добиться этих проверок?

Я достиг своей цели без какого-либо подготовленного заявления, но я думаю, что существует более изящный способ сделать это. Я использую Laravel 5.4 и Laravel Excel (https://laravel -excel.com / ). MySQL 5.0.11

...