mysql - laravel 检索 old() 其中查询值
问题描述
我有 2 个多值选择列表,我使用 jquery 在它们之间传递用户。
<select multiple="multiple" id="ListAllUsers" class="form-control">
@foreach ($users as $user)
<option class="content" value="{{ $user->id }}">{{ $user->name }}</option>
@endforeach
</select>
<select name="user_id[]" required multiple="multiple" id="SelectedUsers" class="form-control">
@if (!empty(old('user_id')) && $create_form)
@foreach ($old_value_users as $old_user)
<option class="content" value="{{ $old_user->id }}">{{ $old_user->name }}</option>
@endforeach
@endif
</select>
现在,我的问题是,当我在 whereIn 查询中传递 old('user_id') 值时,我只得到数组的第一个结果,而不是传入的所有结果。
$old_users_id = [old('user_id')];
$old_value_users = User::whereIn('id', $old_users_id)->get();
如果我$old_users_id = [old('user_id')]
用它代替$old_users_id = [1,2,3],
它就像一个魅力。我有dd(old('user_id'))
,它确实是一个数组,所以我不明白什么是打嗝!
解决方案
因为old('user_id')
是一个数组,所以你不应该把它放在一个数组中。试试这个;
如果 old('user_id') 为空,则应提供一个空数组。
$old_users_id = old('user_id')?old('user_id'):[];
$old_value_users = User::whereIn('id', $old_users_id)->get();
+ 点
如果您要向查询中添加大量整数绑定,而不是whereIn
尝试。有关更多检查文档whereIntegerInRaw
推荐阅读
- elasticsearch - DSL查询从字典数组中查找元素
- javascript - 单击btn jquery时删除表tr
- sql - 选择符合条件 SQL 的所有非不同用户的列表
- angular - 带导航的 Angular FullCalendar 自定义标题按钮
- google-visualization - 在谷歌图表中结合风格、间隔和确定性
- php - 使用 PHP 获取 og:image url
- html - 阴影背景大小的问题
- database - 为什么我在 XAMP 上托管的网站在本地主机上没有数据库错误?
- blazor - 在 blazor 页面上设置参数时 IIS 和独立应用程序崩溃
- spring - 尝试将 Spring 版本从 5.1 升级到 5.2 时出错