Данные флажка формы Laravel - PullRequest
0 голосов
/ 17 октября 2018

У меня есть две таблицы;оба из которых имеют несколько столбцов.В одной из них у меня есть все лицензии, которые пользователь может выбрать (с флажками), в другой я храню лицензии, которые есть у пользователя.

Я создал модель для получения всех лицензий и модель для получения лицензий пользователя.есть.

Теперь я не могу понять, как создать представление всех лицензий, где те, которые уже есть у пользователя, уже проверены - например, когда я создаю форму с этими флажками, как я могу проверить, если пользователь ужеимеет лицензию.

Я могу получить значения, но не могу получить синтаксис @if.

Вот мой код в настоящее время:

<div class="form-group col-sm-12">
    <div class="form-check form-check-inline">
        @foreach($all_license as $all_licen_row)
            @foreach($drive_licenses as $lisen)
                @if($lisen->license_id==$all_licen_row->id)

                    <input class="form-check-input" type="checkbox"
                           name="{{$all_licen_row->license_id}}" checked>

                    <label class="form-check-label"
                           for="inlineCheckbox1">{{ $all_licen_row->class }}</label>)

                @else
                    <input class="form-check-input" type="checkbox" name="{{$all_licen_row->license_id}}">

                    <label class="form-check-label"
                           for="inlineCheckbox1">{{ $all_licen_row->class }}</label>)
                @endif
            @endforeach
            @if($errors->has('id'))
                <span class="help-block">
                <strong class="text-danger">{{ $errors->first('drive_licence') }}</strong>

            </span>
            @endif
        @endforeach

    </div>
</div>

1 Ответ

0 голосов
/ 18 октября 2018

Примерно так обычно легче обрабатывать без использования внутреннего цикла.Вы можете проверить, какие идентификаторы должны быть выбраны перед циклом через $all_license, просто сохраняя идентификаторы из drive_licenses в массиве и просто проверяя, существует ли идентификатор $all_license в массиве.Пример:

<?php 
    $ids = array();
    foreach($drive_licenses as $lisen) {
        array_push($ids, $lisen->license_id)
    }
?>
@foreach($all_license as $all_licen_row)
    @if(in_array($all_licen_row->id, $ids))

        <input class="form-check-input" type="checkbox" name="{{$all_licen_row->license_id}}" checked>
        <label class="form-check-label" for="inlineCheckbox1">{{ $all_licen_row->class }}</label>

    @else
        ...
    @endif
@endforeach

Если вы хотите, вы также можете использовать троичный оператор (например, (?:)), чтобы немного сократить ваш код.Пример:

@foreach($all_license as $all_licen_row)

    <input class="form-check-input" type="checkbox" name="{{$all_licen_row->license_id}}"{{ (in_array($all_licen_row->id, $ids) ? ' checked' : '') }}>
    <label class="form-check-label" for="inlineCheckbox1">{{ $all_licen_row->class }}</label>

@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...