我与employees
和items
之间存在关系。它是一对多的关系(即员工可以有很多项目)。
例如,Mark和Bill有两名员工。
Mark分别使用item_no 1-0234,1-0235购买了商品。
Bill分别以item_no 1-0236,1-0237购买了商品。
项目编号是唯一的,因此可用于查找拥有的客户。
这是我的代码,用于查找客户所属的项目。我使用复选框选择所有项目的ID。
我希望实现的目标是,我希望根据所选项目查找所有员工,使用explode
检索电话号码和item_nos并处理消息。
控制器
<?php
public function processMessage(Request $request)
{
$ids = $request->ids; // i am able to get the item_nos selected, eg. 1 - 0234, 1 - 0236
$split = explode(",", $ids);
if (request()->ajax()) {
$employees = Employee::whereHas('items', function ($emp) use ($split) {
$emp->where('id', $split);
})->get();
$get_name = [];
$get_phone = [];
foreach ($emps as $key => $emps) {
$get_name[] = $emps->name;
$get_phone [] = $emps->phone;
}
}
return ['success' => $get_phone];
}
PS:在代码中,想象一下我用item_nos 1-0234,1-0236选择了两个项目。也就是说,我的代码应该返回两个电话号码,即Mark和Bill,但它只返回其中一个,这是Mark的。为什么会发生这种情况
答案 0 :(得分:1)
如果我更正,以下内容应该有助于您的查询功能 -
$emp->whereIn('id',$split);