首页 > 解决方案 > 为 PHP API 函数传递多个值

问题描述

我是 PHP 新手,正在努力修改一个 API。它使用 Laravel 框架构建。我的控制器中有如下 API 功能。

public function DeleteOneMail(Request $request)
{
    $uid = $request->uid;

    if (\Request::is('api/*')) {
        if ($request->has('key')) {
            if (in_array($request->input('key'), explode(',', env('API_KEY')))) {
                if ($uid == '') {
                    return response()->make('Please Enter UID', 401);
                } else {
                    $client = Client::account('default');
                    $client->connect();
                    $inbox = $client->getFolder('INBOX');
                    $message = $inbox->getMessage($uid);
                    if ($message) {
                        return response(['success' => 1], 200);
                    } else {
                        return response(['success' => 0, 'message' => 'No Data Found'], 200); 
                    }
                }
            } else {
                return response()->make('Unauthorized Access. Please enter correct API Key', 401);
            }
        } else {
            return response()->make('Unauthorized Access. Please enter correct API Key', 401);
        }
    }
}

我正在调用如下 API

https://example.com/api/delete-one-mail?key=2221212&uid=214

它工作正常,没有任何问题。现在我想通过请求传递多个 uid,所以我可以用我的 api 函数一个一个地处理那个 uid。我不知道如何传递数组并处理它。让我知道是否有任何专家可以帮助我解决我的难题。谢谢!

标签: phparraysjsonlaravel

解决方案


你可以像这样传递一个数组

https://example.com/api/delete-one-mail?key=2221212&uid[]=214&uid[]=111&uid[]=222

$request->uid应该是一个数组,但你可以确保(如果有人使用只有一个 uid 的旧 url)

$uids = Arr::wrap($request->uid);

推荐阅读