首页 > 解决方案 > 有没有办法将多个输入推送到 laravel 中的同一个 Db 列?

问题描述

我曾尝试搜索与上述问题类似的内容,但没有运气。

我在系列和视频表之间有一对多的关系。在视频表中,我有视频的标题和网址。

我遇到的问题是,我正在使用 jquery 添加包含标题和 url 的多行。

我尝试将标题和网址推送到数据库上的视频表。推送一个输入时没有问题,但是当我有很多标题和网址时,代码会中断。

我也尝试过使用 createMany 但它只能添加一个输入数组。我无法让它同时添加标题和网址。

$data = \request()->validate([
            'title' => 'required',
            'vimeo_id' => 'required',
            'episode_number' => 'required'
        ]);


        $pricourse->videos()->createMany($data);

在我在浏览器中添加数据后,我得到以下信息

array:4 [▼
  "_token" => "82k5RnVcdzSkPoOnDYeYipuRqAcJqhXzcWAx3RwW"
  "title" => array:2 [▼
    0 => "Angles of Elevation"
    1 => "English 2"
  ]
  "vimeo_id" => array:2 [▼
    0 => "12343"
    1 => "12343"
  ]
  "episode_number" => array:2 [▼
    0 => "1"
    1 => "2"
  ]
]

任何帮助将不胜感激..

谢谢

标签: phplaravel

解决方案


我发现我没有正确地从 hmtl 页面传递数据。我对其进行了一些更改。

<input type="text" name="videos[0][title]">
<input type="text" name="videos[0][vimeo_id]">
<input type="text" name="videos[0][episode_number]">

<input type="text" name="videos[1][title]">
<input type="text" name="videos[1][vimeo_id]">
<input type="text" name="videos[1][episode_number]">

我的控制器代码如下

$data = \request()->validate([
            'videos.*.title' => 'required',
            'videos.*.vimeo_id' => 'required',
            'videos.*.episode_number' => 'required'
        ]);

$pricourse->videos()->createMany($data['videos']);

我所要做的就是在 createMany 中传递 $data['videos']

谢谢大家的帮助。它充当了指针


推荐阅读