Как получить обработку при ошибке входа в систему (опубликовать JSON URL) с laravel - PullRequest
0 голосов
/ 15 апреля 2019

Я хочу выполнить обработку ошибок при вводе неправильного пароля или имени пользователя.

Здесь я использую URL-адрес json для отправки / входа в систему

Я пытаюсь дать перенаправление, но ошибка все же

У меня есть код для входа в систему (index.blade.php), подобный следующему:

        <form id="form-login" method="post" action="{{URL::to('/login')}}">
        {{ csrf_field() }}
        <div>{{ session('alert') }}</div>
        <p><b>Username : <input type="text" id="username" name="noRm" value="" placeholder=" Nomor Rm"></p>
        <p><b>Password : <input type="password" id="password" name="tglLahir" value="" placeholder=" Tanggal Lahir"></p>
        <p><b>Captcha  : <label type="text" id="mainCaptcha"></label><input  type="image" id="refresh" onclick="Captcha();" src="/images/refresh.png"/></p>
        <p><input type="text" id="txtInput" onchange="ValidCaptcha();"/>&ensp;&ensp;
        <label id="tickT" style="background-color: green; width: 25px; border-radius: 25px;"></label>
        <label id="tickF" style="background-color: red; width: 25px; border-radius: 25px;"></label>
        </p>
        <p><input type="hidden" id="resultCaptcha" name="resultCaptcha"/></p>

        <p class="submit"><input type="submit" name="commit" value="Login"></p>
        </form>

Это мой маршрут:

Route::post('login', 'userController@getLogin');

Это мой контроллер:

function getLogin(Request $req){
    if ($req->resultCaptcha !== "false" && $req->resultCaptcha !== null) {
        if ($req->noRm !== null && $req->tglLahir !== null) {
            $client = new Client();
            $response = $client->get('http://192.168.11.183:8080/PasienV2/PasienV2/cekLoginRegistro/'.$req->noRm.'/'.$req->tglLahir );
            $result = json_decode($response->getBody()->getContents());
            return view('login', compact('result'));
        } else {
            return redirect()->back()->with('alert', '' + '<button type="button" onclick="Delete(this)">X</button>' );  
        }
    } else {
        return redirect()->back()->with('alert',' False Captcha !');
    }
}

Как я могу выполнить обработку, когда пользователь ввел неправильный пароль?

, когда я запустил свой код и ввел неправильный пароль, я получил такую ​​ошибку:

"Undefined property: stdClass::$tanggalLahir"

enter image description here

Я начинаю использовать Laravel Framework .. Кто-нибудь может мне помочь?Спасибо :) 1026 *

1 Ответ

0 голосов
/ 15 апреля 2019

Вы должны обработать ошибку и исключения, выданные сторонней стороной API, с помощью try catch ..

try {
        $response = $client->get('http://192.168.11.183:8080/PasienV2/PasienV2/cekLoginRegistro/'.$req->noRm.'/'.$req->tglLahir );
        $result = json_decode($response->getBody()->getContents());
        return view('login', compact('result'));
    }catch (\Exception $e){            
        abort( $e->getCode() ?? 500, json_decode($e->getResponse()->getBody(true))->message??"Server error!");
    }

И обработать исключение или добавить флэш-сообщение и перенаправить его в ваш файл просмотра

используйте переменные на стороне лезвия следующим образом:

 @if(isset($result->tanggalLahir)) {{ $result->tanggalLahir }} @endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...