我有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()创建具有belongsTo关系的颜色。

如何使用带有外键颜色的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);

最佳答案

你可以这样

$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);

关于php - Laravel如何将数据插入到两个彼此具有外键的表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58490938/

10-13 01:26