Вставка Laravel в БД с помощью Eloquent - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь вставить в свою базу данных, используя метод dara laravel. Я могу вставить массив, используя этот код:

if(!empty($data) && $data->count()){

    foreach ($data as $key => $value) {
        $insert[] = [
        'Number' => $value->number,
        'Full_Name' => $value->full_name,
        'Type' => $value->type,
        'Email' => $value->email,
        ];  
    }

    if(!empty($insert)){

        $insertData = DB::table('import')->insert($insert);
        if ($insertData) {
            Session::flash('success', 'Your Data has successfully imported');
        }else {                        
            Session::flash('error', 'Error inserting the data..');
            return back();
        }
    }
}

Здесь я могу вставить значения, используя массив вставки, но я хочу вставить это, используя метод eloquent createЕсть ли что-то вроде этого:

$insertData = Import::create($insert);

Я хочу использовать этот метод:

firstOrNew

Как я могу использовать красноречивый метод, где я могу вставить в БД и если есть какое-либо дублирование там этодолжен выдать ошибку.

Код импорта модели:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Import extends Model
{
    protected $table = 'imports';
    protected $fillable =  [
      'id',
      'Number',
      'Full_Name',
      'Type',
      'Email',
      'created_at',
      'updated_at'
    ];
}

Я использую laravel 5.2

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Я исправил проблему с помощью комментария alexkb, я использую этот код:

array_walk($insert, function($import) { Import::create($import); })

И этот работает

0 голосов
/ 31 января 2019

Вы можете использовать firstOrCreate, чтобы избежать дублирования, первый параметр будет использоваться для поиска записи, а второй будет использоваться для новой записи, но не для поиска

$import= Import::firstOrCreate([
    'email' => 'email@email.com'
], [
    'Full_Name' => 'Nilay Singh',
    'Type' => 'Type'
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...