【问题标题】:Multidimensional form array with Vuejs and Laravel 5带有 Vuejs 和 Laravel 5 的多维表单数组
【发布时间】:2017-02-10 23:57:51
【问题描述】:

我正在使用 VueJs 发布一组表单数据,如下所示:

hives: [{
    hive_type_id: '',
    quantity: '',
    yard_id: this.yardId,
    action: 'added',
    added_from: '',
    converted_to: '',
    notes: '',
    logged_at: moment().format('DD-MM-YYYY'),
}]

1) 我如何在我的控制器中访问它以存储到数据库中? 我已经尝试过,使用 foreach:

foreach($request->get('hives') as $key => $val) { ... }

然后访问每个单独的配置单元数据: 例如

$request->action[$key]
$request->added_from[$key]

但是我没有运气存储到数据库。

2) 我如何使用表单请求验证这个数组?

感谢您的帮助!

【问题讨论】:

  • foreach 工作正常吗?
  • “没有运气存储到数据库”是什么意思?你有错误吗?你的数据库代码是什么样的?你用的是什么数据库?
  • foreach 似乎工作正常,我认为问题是当我尝试访问各个配置单元节点时,这是正确的方法:'$request->action[$key]'?
  • DB 是 Postgres,但在数据成为数组之前已经保存到那么好的状态。
  • 数据库代码:$new_hive = new Hive; $new_hive->yard_id = $yard->id; $new_hive->hive_type_id = $request->hive_type[$key]; $new_hive->total = $request->quantity[$key]; $new_hive->quantity = $request->quantity[$key]; $new_hive->action = $request->action[$key]; $new_hive->notes = $request->notes[$key]; $new_hive->logged_at = $request->logged_at[$key]; $new_hive->active = true; $new_hive->save();

标签: php laravel multidimensional-array laravel-5 vue.js


【解决方案1】:

您可以删除$key,并为$val 取一个更有意义的名称。直接访问它,像这样:

foreach ($request->get('hives') as $hive) {
    $new_hive = new Hive;
    $new_hive->quantity = $hive->quantity;
    $new_hive->action   = $hive->action;
}

文档中详细介绍了表单请求验证:https://laravel.com/docs/5.1/validation#form-request-validation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 2015-10-15
    • 2014-08-14
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多