Передача нескольких значений для PHP API-функции - PullRequest
1 голос
/ 25 февраля 2020

Я новичок в PHP и работаю над модификацией одного API. Он построен с Laravel Framework. У меня есть функция 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 с запросом, и поэтому я могу обработать этот uid один за другим с моей функцией api. Я не понимаю, как я могу передать и обработать это. Дайте мне знать, если какой-либо эксперт может помочь мне решить мою загадку. Спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Если вы хотите отправить массив по GET-запросу, просто используйте []

https://example.com/api/delete-one-mail?key=2221212&uid[]=1&uid[]=2

В вашем контроллере вы получите массив

$uid = $request->uid;
dd($uid);

В результате вы получите

[1, 2]
1 голос
/ 25 февраля 2020

Вы можете передать массив, подобный этому

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

$request->uid должен быть массивом, но вы можете убедиться (если кто-то использует старый URL-адрес только с одним uid), выполнив

$uids = Arr::wrap($request->uid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...