如何将输入数组保存为雄辩?

时间:2016-01-04 18:09:09

标签: arrays laravel eloquent laravel-collection

我目前正在开发一个用laravel 5进行事件管理的项目,现在正处于障碍中。所以现在我正处于创建活动门票的阶段。

事件模型和故障单模型之间的关系是一对多。一个事件可以有很多票,一个票只能属于一个事件。

以下是人们没有点击添加票证按钮时的视图: enter image description here

及以下是人们点击添加票证按钮的时间: enter image description here

对于字段,我将其命名为数组。以下是代码:

<input name="ticket[][name]" type="text" class="form-control" placeholder="Ticket Name">
<input name="ticket[][stock]" type="text" class="form-control" placeholder="Quantity">
<input type="text" name="ticket[][price]" class="form-control">

所以,问题是,如何捕获控制器中输入的数据?以及如何将其保存到雄辩中?

当我尝试使用dd($ request-&gt; input('ticket'))时,它会显示一个数组列表,而不是一个集合。

我正在考虑这样的事情:

foreach($request->ticket as $index => $ticket) {
        $event->tickets()->save(new Ticket($ticket));
    }

可以这样做吗?非常感谢

1 个答案:

答案 0 :(得分:0)

大部分时间你都有正确的理想。理想情况下,我需要您提供更多信息,但我会尽力将您推向正确的方向。您肯定希望循环使用票证数组并单独保存每个票证。

这是一个失败的例子:

$tickets = Input::get('ticket');

foreach($tickets as $ticket){

   $newTicket = new Ticket; // create the new ticket
   $newTicket->name = $ticket['name']; // add name 
   $newTicket->stock = $ticket['stock']; // add qty
   $newTicket->price = $ticket['price']; // add price
   $newTicket->event_id = [you need an event id here];
   $newTicket->save(); // save the new ticket 

}

您可以在上面看到,您还需要传递与故障单关联的事件ID,以便将even和ticket之间的关系链接在一起。