【发布时间】:2019-09-01 16:59:00
【问题描述】:
我的项目有问题。我的数据库中有逗号分隔值,我想显示与我选择的任何框匹配的数据。但我没有得到预期的结果
这是我的查询
$products = $products->where('status', 1);
if ($request->get('connectivity')) {
foreach ($request->get('connectivity') as $key => $connectivity) {
if ($key == 0) {
$products = $products->whereRaw('FIND_IN_SET(' . $connectivity . ',connectivity)');
} else {
$products = $products->orWhere(function ($query) use ($connectivity){
$query->whereRaw('FIND_IN_SET(' . $connectivity . ',connectivity)');
});
}
}
}
$products = $products->get();
我的 whereRaw 查询运行成功,但是当 orWhere 查询运行时,我得到了额外的数据。
我的选择框数据示例是 [118, 112]
提前致谢
【问题讨论】:
-
所选框的外观以及数据库中存储的数据是谁,您能举一些例子吗
-
@OsamaAlvi 更新了我的问题。请看一下
-
明确一点,
$request->get('connectivity')是什么样的?另外,I get extra data到底是什么意思?有什么问题? -
@Don'tPanic 执行的响应数据应该是 12 项,但执行此查询后我得到 39 项,我的
$request->get('connectivity')是在 Blade 文件中检查的数组 -
对不起,这对我们没有任何意义。为什么您只期待 12 件商品?其他 27 项有什么问题?我们不知道您的数据,我们无法说出您的期望或原因。此外,我们不需要查看表单的图片,我们需要查看数据,例如 HTML,或者更好的是,
dd($request->get('connectivity'))的样子。
标签: jquery mysql laravel search