获取多对多关系以进行记录编辑

时间:2018-08-02 06:19:05

标签: php laravel

我的数据库中有3个表。 ClassesRegistrations和数据透视表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将它们分组并在下拉列表中显示计数?

0 个答案:

没有答案