我的数据库中有3个表。 Classes
,Registrations
和数据透视表class_registration
。
事件具有类别,用户可以选择多个类别进行注册。因此,如果用户A选择两次Class 1,一次选择Class 2,则每轮保存1行,即Class 1为2行,Class 2为1行。
Classes
表具有以下字段
id | event_id | name | fees
Registration
表具有以下字段
id | event_id | user_id | fees | isPaid
Class_Registration
数据透视表具有以下字段
id | registration_id | class_id | unitFees
以下是registration
模型中的关系
public function classes()
{
return $this->belongsToMany(Classes::class,'class_registrations','registration_id','class_id');
}
以下是我为控制器编写的代码
public function updateRegistration(UpdateRegistrationRequest $request, Registration $registration)
{
return view('frontend.event.editRegistration',['event' => $registration->eventDetail,'registration' => $registration]);
}
我想获取每个registration
中的类的数量,以便在编辑registration
时填充数据。
以下是视图代码
@foreach ($registration->classes as $class)
<tr>
<td>{{ $class->name }}</td>
<td>{{ $class->maxEntry }}</td>
<td>{{ $class->fees }}</td>
<td>
{{ html()->hidden('classes[]',$class->id) }}
<select name="rounds_{{ $class->id }}" id="rounds" class="form-control" required="required">
@for($i=0; $i<=10; $i++)
<option value="{{$i}}">{{$i}}</option>
@endfor
</select>
</td>
</tr>
@endforeach
如何按class_id
将它们分组并在下拉列表中显示计数?