За последние 24 часа нас посетили 20613 программистов и 1108 роботов. Сейчас ищут 413 программистов ...

With "наоборот"

Тема в разделе "Laravel", создана пользователем Feonix89, 25 сен 2018.

  1. Feonix89

    Feonix89 Новичок

    С нами с:
    30 май 2018
    Сообщения:
    113
    Симпатии:
    2
    Здравствуйте не знаю даже как правильно назвать тему.
    Я загружаю из excel в БД, но пользователь вводит не id а наименование, получится, что при записи в БД будет ошибка строка к числу. Как можно наиболее оптимально сделать такую задачу? Этот вариант делает много запросов к БД, но работает.
    Суть истории такова, есть:
    PHP:
    1.         $path = $request->file('file')->store('excel-files');
    2.  
    3.         $collectionTest = (new FastExcel)->import(storage_path('app/' . $path), function ($line)
    4.         {
    5.             if (empty($line['Вариант лицензирования'])) {
    6.                 $value = '';
    7.             } else {
    8.                 $valueLicensingOption = LicensingOption::select('id')->where('name', '=', $line['Вариант лицензирования'])->get();
    9.                 $arr = json_decode(json_encode($valueLicensingOption), true);
    10.                 $value = $arr['0']['id'];
    11.             }
    12.  
    13.             return ItActiveMySystemCenter::firstOrNew(
    14.                 ['display_name' => $line['Display name'],
    15.                     'product_id' => $line['Product ID'],
    16.                     'publisher' =>  $line['Publisher'],
    17.                     'number_of_licenses_installed' => $line['Лицензий установлено'],
    18.                     'licensing_option_id' => $value],
    19.                 ['display_name' => $line['Display name'],
    20.                     'product_id' => $line['Product ID'],
    21.                     'publisher' =>  $line['Publisher'],
    22.                     'number_of_licenses_installed' => $line['Лицензий установлено'],
    23.                     'licensing_option_id' => $value]);
    24.         });
    Меня заклинивает....(
    --- Добавлено ---
    Заранее благодарен за любую помощь
     
    #1 Feonix89, 25 сен 2018
    Последнее редактирование: 25 сен 2018
  2. Feonix89

    Feonix89 Новичок

    С нами с:
    30 май 2018
    Сообщения:
    113
    Симпатии:
    2
    Да и вообще может быть можно это реализовать как то более правильно чем этот вариант?