Выпадающий выбранный вариант редактирования старого значения не работает в laravel - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь показать выбранное значение параметра в раскрывающемся списке и только что использовал выдутый код, и теперь это работает, даже если я использовал тот же трюк для других данных таблицы, и это работает нормально.Но я не знаю, почему это не работает?

public function userEdit($id) {

    $user = User::find($id);
    $userType = User::first()->userType;
    $isActive = User::first()->isActive;
    $allRoles=Role::all();
    $role_user = $user->roles()->pluck('user_id','role_id')->toArray();

    return view('admin\userEdit',compact('user','allRoles','userType','isActive','role_user','selectedRole'));


}

<div class="form-group">
<label class="control-label col-md-3">User Type
    <span class="required" aria-required="true"> * </span>
</label>
<div class="col-md-6">
    <div class="input-icon right">
        <i class="fa"></i>
        <select class="form-control"
            name="userType">

            <option @if(old('userType',$userType) == 'host') selected @endif>
                host
            </option>
            <option @if(old('userType',$userType) == 'visitor') selected @endif>
                visitor
            </option>
            <option @if(old('userType',$userType) == 'admin') selected @endif>
                admin
            </option>
            <option @if(old('userType',$userType) == 'operator') selected @endif>
                operator
            </option>

        </select>
    </div>
</div>

Может кто-нибудь помочь мне исправить это, которое покажет мое старое значение, когда пользователь будет редактировать данные?

1 Ответ

0 голосов
/ 29 сентября 2018

Раньше у меня был тот же вопрос, и мне приходилось делать это непрофессионально, мы все знаем, что select не ограничен для повторения в нем опций, поэтому я использовал этот хак.Для вашего случая я бы сделал что-то вроде:

<select class="form-control"
    name="userType">
    <option value"{{ $userType }}"> {{ $userType }} </option>
    <option value"host"> host </option>
    <option value"admin"> admin </option>
    <option value"visitor"> visitor </option>
    <option value"operator"> operator </option>
 </select>

Для ваших переменных, которые вы отправляете в блейд-файл, вы можете попробовать этот код, чтобы убедиться, что вы не получите тот же userType, isActive и все

$user = User::find($id);
$userType = $user->userType;
$isActive = $user->isActive;
$allRoles=Role::all();
$role_user = $user->roles()->pluck('user_id','role_id')->toArray();

Я так уверен, что это не лучший способ сделать это, но он решает вашу проблему в настоящее время.

Даже если $userType будет host, это даст вам host, когдаразмещение формы

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