基于Laravel

时间:2017-11-25 09:27:29

标签: php laravel

我与employeesitems之间存在关系。它是一对多的关系(即员工可以有很多项目)。

例如,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的。为什么会发生这种情况

1 个答案:

答案 0 :(得分:1)

如果我更正,以下内容应该有助于您的查询功能 -

$emp->whereIn('id',$split);