Я делаю небольшой портал для голосования студентов, использующий Laravel.Что я намерен сделать, так это то, что я хочу, чтобы они могли вводить идентификатор из другого приложения, которому мне дали API.Теперь я хочу иметь возможность проверять эти идентификаторы, когда они вводятся перед публикацией.Поэтому, если идентификатор не существует, он должен ответить false.
Ниже приведены мои коды - Это мой контроллер
public function postVote(Request $request)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://3.16.139.101:8080/enshika/api/validate/enshikaId.json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_TIMEOUT => 30000,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
print_r(json_decode($response));
}
$this->validate($request,[
'enshika_id' => 'required|unique:votes|'],
['enshika_id.required'=>'You need to enter your Enshika ID',
'enshika_id.unique'=>"The ID $request->enshika_id already exist!"]
);
if($request->ajax())
{
return response()->json(Vote::create($request->all()));
}else return back()->with(['error'=>'']);
}
- Маршрут
Route::post('/post-vote', ['as' => 'postVote', 'uses' => 'VoteController@postVote']);
- Аякс для публикации данных
$('.btn-vote').on('click', function (e) {
e.preventDefault();
var data = $('#frm-create-vote').serialize();
$.post("{{route('postVote')}}", data, function (data) {
$('#vote-show').modal('hide');
swal('Great!',
'You have voted successfully',
'success');
$(this).trigger('reset');
}).error(function (data,status,error) {
console.log(data);
var response = $.parseJSON(data.responseText)
$.each(response.errors, function(key, value){
swal({
title: "ooops!",
text: value,
icon: "error",
color: "#FEFAE3",
button: "OK",
});
});
});
});
- Форма
<form id="frm-create-vote" class="form-horizontal" action="">
<input type="hidden" name="cont_id" id="cont_id_edit">
<input type="hidden" name="fullname" id="fullname_edit">
<div class="modal-body">
<div class="form-group">
<div class="col-lg-2">
<label for="class_name">Enshika ID</label>
</div>
<div class="col-lg-8">
<input type="text" class="form-control" name="enshika_id">
</div>
</div>
<div class="form-group">
<div class="col-lg-12">
<label for="class_name" style="color: #ff2121">Dont have Enshika ID. Click on the links to download and sign up now for your ENSHIKA ID! </label><br>
<a href="https://play.google.com/store/apps/details?id=com.enshika.passenger" target="_blank" class="logo"><img src="assets/img/playstore.png"
height="120px" width="250px"></a><br>
<a href="https://itunes.apple.com/gh/app/enshika/id1276549309?mt=8" target="_blank" class="logo"><img src="assets/img/appstore.png"
height="80px" width="230px"></a>
</div>
</div>
</div>
<div class="modal-footer">
<button data-dismiss="modal" class="btn btn-default" type="button">Close</button>
<button class="btn btn-success btn-vote" type="button">Submit</button>
</div>
</form>
Я хочу проверить поле enshika_id.Чтобы проверить, существует ли вход от внешнего API, данного мне.Пожалуйста, помогите мне