Laravel: проверка не работает при тестировании вживую - PullRequest
0 голосов
/ 25 апреля 2018

Создание функции проверки пользователя с проверкой в ​​интеграции API. Когда я пытаюсь проверить пользователя с некоторой проверкой и проверить его в postman, он отлично работает на локальной машине, но когда я загрузил код на сервер и протестировал, он не работает .

Функция контроллера:

public function confirmUser(ForgotPasswordRequest $request)
{
    // ForgotPasswordRequest  for validate
    $user  = User::leftjoin('user_details','users.id', '=', 'user_details.user_id')
                ->where('user_details.phone', '=', $request->post('phone'))
                ->where('users.email', '=', $request->post('email'))
                ->first();
    if(!$user) {
        return response()->json([
                'message' => "The credentials you provided cannot be determined to be authentic.!!",
                'status_code' => 404,
        ]);
    }
    $token = JWTAuth::fromUser($user);
    return response()->json([
        'message'       => "Your account is eligible for change password.!!",
        'token'         => $token,
        'status_code'   => 200
    ]);
}

Мой forgotPasswordRequest.php код:

<?php

namespace App\Api\V1\Requests;

use Config;
use Dingo\Api\Http\FormRequest;

class ForgotPasswordRequest extends FormRequest
{
    public function rules()
    {
        return Config::get('boilerplate.forgot_password.validation_rules');
    }

    public function authorize()
    {
        return true;
    }
}

А в config папке boilerplate.php файл содержит forgot_password правил:

  'forgot_password' => [

        'validation_rules' => [
        'email' => 'required|email',
        'phone' => 'required|min:11|numeric'
    ]
],

Когда email и phone null, возвращается только email проверка не phone:

{
"error": {
    "message": "422 Unprocessable Entity",
    "errors": {
        "email": [
            "The email field is required."
        ]
    },
    "status_code": 422
}
} 

Что я делаю не так? Это связано с куки?

1 Ответ

0 голосов
/ 25 апреля 2018

Здесь нет ничего плохого.

Laravel проверяет, правильно ли заполнено поле email. Это не так, Laravel выходит из метода проверки и возвращает исключение.

Если вы заполните поле email, но оставите поле phone пустым, то ответ проверки будет около поля phone.

...