【问题标题】:accessing arrays within an array laravel 5.6访问数组laravel 5.6中的数组
【发布时间】:2018-09-01 00:48:00
【问题描述】:

我用 Vue.js 制作的前端在一个数组中传递 user_id,paper_id,而在第二个数组中传递 answers。这两个数组都存储在一个数组中。我的数组的dd()

array:2 [
 0 => array:2 [
  0 => 7
  1 => 3
]
 1 => array:4 [
  0 => 2
  1 => 2
  2 => 3
  3 => 4
 ]
]

谁能解释如何实际读取数据以便将所有数据存储在数据库中 我的数据库架构

 Schema::create('answers', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned()->index();
        $table->foreign('user_id')->references('id')->on('users');
        $table->integer('paper_id')->unsigned()->index();
        $table->foreign('paper_id')->references('id')->on('papers');
        $table->integer('answer')->nullable();
        $table->timestamps();
    });

我需要的结果就是拥有

userid,paperid,answer
3,      7,       2
3,      7,       2
3,      7,       3
3,      7,       4

【问题讨论】:

  • 不是你自己创建的吗?除非您描述您的数据库架构、模型以及您希望去哪里,否则我无法帮助您。对于第一个数组,您也可以使用键。我会建议实际上
  • 我建议将答案设为 json 字段并使用强制转换。在下面查看我对当前版本的回答

标签: php arrays laravel-5.6


【解决方案1】:

这是快速的方法。我会改变一些东西,比如你的表格外观和背后的逻辑,但这应该可以解决你的问题

$answers = $array[1];
$data = [];    

foreach($answers as $answer)
{
    $data[] = ['user_id'=> $array[0][0], 'paper_id' => $array[0][1], 'answer' => $answer];
}

Answer::create($data);

确保您在 Answers 模型的 $fillable 数组中有 user_id、paper_id、answer

【讨论】:

  • 感谢@Indra 的回复。我更改了前端发送数据的方法,所以我没有在数组中获取数组,而是现在向我发送 2 个变量和一个数组。这似乎是一个更容易解决的问题。还是谢谢
猜你喜欢
  • 2019-01-29
  • 1970-01-01
  • 2018-09-07
  • 2018-09-15
  • 2017-05-06
  • 2022-06-29
  • 2018-11-26
  • 2019-07-10
  • 2022-01-20
相关资源
最近更新 更多