deadloop
@deadloop
Активно осваиваю PHP

Как из вьюшки(views) передать данные в контроллер?

Добрый день, столкнулся с таукой задачей, как из вьюшки передать данные в контроллер. Есть таблица в ней есть роли и категории, как роли передать я разобрался а как еще передать id категорий которым соотвествуют роли.
6073ca64eb40d427807036.jpeg

Код постороения таблицы
@foreach ($categories as $category)
<tr>
    <td>{{$category->title}}</td>
        @foreach ($roles as $role)
            @foreach ($role->categories as $cat)
                <td class="text-center">
                    <div class="form-check">
                        <input class="form-check-input" name="roles[]" type="checkbox"
                            value="{{$role->id}}" @if(in_array($role->id, $category->roles()->pluck('id')->all())) checked @endif>
                    </div>
                </td>
            @endforeach
        @endforeach
     </tr>
@endforeach


Код метода из контроллера
public function update(Request $request) {
        $roles = $request->roles;
        // dd($roles);
        return view('home');
    }
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Ну и формулировка =) Строго говоря из вьюхи в контроллер данные не передаются. только наоборот.

Но в целом понятно чего вам нужно.

@foreach ($roles as $role)
    @foreach ($role->categories as $cat)
        <td class="text-center">
            <div class="form-check">
                <input class="form-check-input" name="roles[{{$cat->id}}][]" type="checkbox"
                    value="{{$role->id}}" @if(in_array($role->id, $category->roles()->pluck('id')->all())) checked @endif>
            </div>
        </td>
    @endforeach
@endforeach


Возможно, так будет удобнее

<input class="form-check-input" name="permissions[{{$cat->id}}][{{$role->id}}]" type="checkbox"
    value="1" @if(in_array($role->id, $category->roles()->pluck('id')->all())) checked @endif>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы