Как я могу использовать один и тот же файл представления для разных типов ролей в Laravel 7? - PullRequest
0 голосов
/ 22 апреля 2020

Я создаю модуль для списка задач. Если тип роли - admin, он / она может назначить ToDo любому пользователю. Однако, если обычный пользователь создает задачу, она будет автоматически назначена текущему пользователю. Я реализовал, как показано ниже:

Функция ToDoController выглядит следующим образом:

public function create()
    {

        return view('todo.create',['countries' => Country::all(), 'business_types' => BusinessType::all(), 'users' => User::all()]);
    }

Файл представления create.blade. php с полем выбора пользователя, как показано ниже:

            @if(!empty(Auth::user()->roles()->where('name','admin')->first()))
                  <div class="form-group">
                    <label for="description">Assigned To</label>
                    <select class="form-control" name="user_id">
                        @foreach ($users as $user)
                          @if ($user->id == old('user_id'))
                            <option value="{{$user->id}}" selected>{{$user->name}}</option>
                          @else
                            <option value="{{$user->id}}">{{$user->name}}</option>
                          @endif                                  
                        @endforeach
                    </select>
                    @if ($errors->has('user_id'))
                      <div class="alert-danger">
                        <p>{{ $errors->first('user_id') }}</p>
                      </div>
                    @endif
                  </div>
                @else
                  <div class="form-group" style="display:none;">
                    <label for="description">Assigned To</label>
                    <select class="form-control" name="user_id">
                        <option value="{{$user->id}}" selected>{{$user->name}}</option>
                    </select>
                    @if ($errors->has('user_id'))
                      <div class="alert-danger">
                        <p>{{ $errors->first('user_id') }}</p>
                      </div>
                    @endif
                  </div>
                @endif

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

Заранее спасибо! Мана

...