我正在尝试列出属于where条件的所有条目。如果我执行以下操作,则会返回所有返回的条目
$users = User::lists('userName', 'id');
但是,我希望只返回部门ID为3的用户。所以我正在做
$users = User::lists('userName', 'id')->where('departmentId', 3);
但是,这会返回一个空结果集。在我的数据库中,我确实有这个部门ID的用户。
如何让list语句正常工作?
只需注意,以下内容将返回我需要的结果
$users = User::select('userName', 'id')->where('departmentId', 3)->get();
但是,在我的编辑表单中,因为我有这个
!! Form::select('csManager', $users, Input::old('users'), ['class' => 'csManager']) !!}
未选择旧输入,数据显示为数组。我知道解决这个问题的方法就是像我这样选择
<select class="csManager" name="csManager">
@foreach($users as $user)
<option value="{{ $user->id }}">{{ $user->userName }}</option>
@endforeach
</select>
但后来我不确定如何在上面的选择中显示旧用户。
任何帮助表示感谢。
由于
答案 0 :(得分:1)
要标记旧选择,请尝试以下操作:
<option value="{{ $user->id }}"
{{ (Input::old('users') == $user->id)? 'selected' : '' }}>
{{ $user->userName }}
</option>
正如@TimVanUum所说,如果您愿意,可以保存一些代码。两者都是平等的。
<option value="{{ $user->id }}"
{{ (Input::old('users') !== $user->id)?: 'selected'}}>
{{ $user->userName }}
</option>
答案 1 :(得分:0)
在您的控制器中:
$users = User::where('departmentId', 3)->lists('userName', 'id');
以刀片形式:
{!! Form::select('csManager', $users, null, ['class' => 'csManager']) !!}
以编辑形式而不是
获取旧数据{!! Form::open([your attributes]) !!}
使用模型绑定。像这样的东西:
{!! Form::model($user,[your attributes]) !!}
在这种情况下,您的编辑方法应该有
$user=findOrFail($id);