仅显示一个选项的选择

时间:2019-11-24 15:57:34

标签: laravel

@if(auth()->user()->type == 'admin')
<div class="form-group {{ $errors->has('course_id') ? 'has-error' : '' }}">
    <label for="user_id" class="col-md-2 control-label">User</label>
    <div class="col-md-10">
        <select class="form-control" id="user_id" name="user_id">
        	    <option value="" style="display: none;" {{ old('user_id', optional($registeredCourse)->user_id ?: '') == '' ? 'selected' : '' }} disabled selected>Select user</option>
        	@foreach ($users as $key => $user)
			    <option value="{{ $key }}" {{ old('user_id', optional($registeredCourse)->user_id) == $key ? 'selected' : '' }}>
			    	{{ $user }}
			    </option>
			@endforeach
        </select>

        {!! $errors->first('course_id', '<p class="help-block">:message</p>') !!}
    </div>
</div>
@else
<div class="form-group {{ $errors->has('course_id') ? 'has-error' : '' }}">
    <label for="user_id" class="col-md-2 control-label">User</label>
    <div class="col-md-10">
            <input class="form-control" name="user_id" type="text" id="user_id" value="{{ old('user_id', optional($->id)) }}" minlength="1" placeholder="Enter name here...">

        {!! $errors->first('course_id', '<p class="help-block">:message</p>') !!}
    </div>
</div>
@endif

我的form.blade.php文件出现问题,我有一个RegisteredCourses的控制器,该角色在管理员和学生角色之间共享。在刀片中,我使用和If / else指令在两个角色之间进行过滤。如果用户是管理员,则显示几个选项。另一方面,如果用户是学生,则我只需要在选择中选择一个选项,即通过身份验证的学生的名字,我只想显示他的名字,而不是数据库中的整个用户名。

我选择选择是因为我可以显示名称并存储user_id,因为它是整数。我不想手动输入ID号。

我不太确定在Laravel中过滤不同刀片是否是最好的主意。有人有建议吗?

请,我需要尽可能简单的方法,因为我对Laravel的了解有限。

谢谢。

1 个答案:

答案 0 :(得分:0)

@if(auth()->user()->type == 'admin')

<div class="form-group {{ $errors->has('course_id') ? 'has-error' : '' }}">
    <label for="user_id" class="col-md-2 control-label">User</label>
    <div class="col-md-10">
        <select class="form-control" id="user_id" name="user_id">
        	    <option value="" style="display: none;" {{ old('user_id', optional($registeredCourse)->user_id ?: '') == '' ? 'selected' : '' }} disabled selected>Select user</option>
        	@foreach ($users as $key => $user)
			    <option value="{{ $key }}" {{ old('user_id', optional($registeredCourse)->user_id) == $key ? 'selected' : '' }}>
			    	{{ $user }}
			    </option>
			@endforeach
        </select>

        {!! $errors->first('course_id', '<p class="help-block">:message</p>') !!}
    </div>
</div>

@else

<div class="form-group {{ $errors->has('course_id') ? 'has-error' : '' }}">
    <label for="user_id" class="col-md-2 control-label">User</label>
    <div class="col-md-10">
        <select class="form-control" id="user_id" name="user_id">
                  <option value="" style="display: none;" {{ old('user_id', optional($registeredCourse)->user_id ?: '') == '' ? 'selected' : '' }} disabled selected>Select user</option>
            @foreach ($users as $key => $user)
                    @if ($key == Auth::user()->id)
                        <option value="{{ $key }}" {{ old('user_id', optional($registeredCourse)->user_id) == $key ? 'selected' : '' }}>
                            {{ $user }}
                        </option>
                    @endif  
            @endforeach
        </select>
    
            {!! $errors->first('course_id', '<p class="help-block">:message</p>') !!}
        </div>
    </div>
    
@endif

最后,我需要检查$ key是否等于Auth :: user()-> id,我只有一个选项。

我希望这对某人有用。

谢谢。

相关问题