在Laravel 5.4中的透视表中填充一个附加字段
我有两种型号:在Laravel 5.4中的透视表中填充一个附加字段,laravel,eloquent,Laravel,Eloquent,我有两种型号:Event和Ticket。我已经实现了它们之间的多对多关系: /** * Get the tickets for the events. */ public function tickets() { return $this->belongsToMany('App\Ticket'); } 以及: 我还创建了名为:event\u ticket的透视表,并添加了3个字段:event\u id(外键)、ticket\u id(外键)和ticket\u quantit
Event
和Ticket
。我已经实现了它们之间的多对多
关系:
/**
* Get the tickets for the events.
*/
public function tickets()
{
return $this->belongsToMany('App\Ticket');
}
以及:
我还创建了名为:event\u ticket
的透视表,并添加了3个字段:event\u id(外键)
、ticket\u id(外键)
和ticket\u quantity
。创建新事件时,我将其保存,然后我希望将数据同步到透视表中,如下所示:
$event->tickets()->sync($request->tickets_type);
如何填写额外的票证数量
字段?我这样做:
$event->tickets()->sync($request->tickets_type, array(
'ticket_quantity' => 12
));
但它似乎不起作用。解决方法是什么?根据网站https://laravel.com/docs/5.5/eloquent-relationships#many-对于许多人来说,在节中,在数据透视表上保存其他数据
,您需要使用save()
方法将附加数据传递到透视表
$event->tickets()->save($request->tickets_type, array(
'ticket_quantity' => 12
));
从
将关系附着到模型时,还可以传递要插入中间表的附加数据数组:
$event->tickets()->save($request->tickets_type, array(
'ticket_quantity' => 12
));
$event->tickets()->attach($ticketId, ['ticket_quantity' => $qty]);