Как добавить много данных из таблицы B в 1 идентификатор в таблице A? и как ты делаешь это в Laravel 6's Eloquent? - PullRequest
0 голосов
/ 10 января 2020

У меня есть таблица контрольных списков и Alats, которая имеет такую ​​связь:

1 данные в контрольных списках могут содержать много данных в Alats (например, IDC001 в контрольных списках могут иметь IDA001, ID002 и ID003 в Алатс)

Вопрос в том, как вставить все эти данные в IDC001? особенно как ты это делаешь в Eloquent (laravel 6)

1 Ответ

0 голосов
/ 10 января 2020

Для этой задачи нам нужно реализовать отношение один ко многим .

В вашей модели Checklist вам необходимо определить

<?php

  namespace App;
  use Illuminate\Database\Eloquent\Model;

  class Checklist extends Model
  {
    public function alats()
    {
        return $this->hasMany('App\Alat');
    }
  }

, что означает, что CheckList имеет множество Alat моделей.

Теперь в вашей Alat модели вам нужно

  namespace App;
  use Illuminate\Database\Eloquent\Model;

  class Alat extends Model
  {

    public function checklist()
    {
       return $this->belongsTo('App\Checklist');
    }
  }

, что означает Alat, имеет отношение к CheckList модели.

Использование : Для сохранения нескольких записей необходимо использовать saveMany ()

$alats = App\Checklist::where('column_name_of_checklists_table', 'IDC001')->first()->alats;

$alats->saveMany([
       new App\Alat(['column_name_of_alats_table' => 'IDA001']),
       new App\Alat(['column_name_of_alats_table' => 'ID0002']),
       new App\Alat(['column_name_of_alats_table' => 'ID0003']),
   ]);
...