Laravel Как вставить данные в 2 таблицы, которые имеют внешний ключ друг к другу - PullRequest
0 голосов
/ 21 октября 2019

У меня есть 3 таблицы: акции , цвета и изображения ;

цветов имеет внешний ключ для акций

и изображений имеет внешний ключ для цветов вот так

Акции:

id    | name     
-------------------------
1     | Berlin - Paris 
2     | Madrid - London
3     | Berlin - Paris 

Цвета:

id    | stocks_id | icon
---------------------------------------
1     |     1     | img1.png  
2     |     2     | img2.png  
3     |     3     | img3.png  

Изображения:

id    |  color_id | url
---------------------------------------
1     |     1     | img1.png  
2     |     2     | img2.png  
3     |     3     | img3.png  

Я использую Модель для вставки акций в базу данных и attach () для создания цвета с отношением ownTo .

Как вставить изображенияиспользование attach () с внешним ключом для цветов ???

Я пробовал много вещей с attach () , но я придерживался его в течение 2 месяцев

код, который я использую:

$stock= new Stocks();
    $stock->storeColors()->attach($request->color_name, array('icon' => request('icon')));
//the line I need to write:
    $stock->storeColors()->storeImages()->attach($request->image);

1 Ответ

0 голосов
/ 21 октября 2019

вы можете сделать это так

$imagenes=[];

$stock= new Stocks();
  $data =  $stock->storeColors()->attach($request->color_name, array('icon' => request('icon')));


  $color = Color::where('stock_id',$data->id)->first();

  if ($request->hasFile('imagen')) {

          foreach ($request->imagen as $image) {

                 $imagenes[]=
                      new Images([
                         'url' => $image->url
                      ]);

      $request->file('imagen')->move('imagenes/','imagenName.jpg');

   }

 }

$color ->images()->saveMany($imagenes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...