私は初めてラージャー検証でajaxを使用していますが、それらを統合する方法にいくつかの問題があります。どのように私のlarvel検証コードを私のajaxと通信できますか?私は自分のjavascriptにいくつかのバリデーションルールを持っていますが、それぞれのルールはルールであり、どのようにララベルと統合できますか? 私のコードの例があります:AJAXを使用したIntegratin検証ルール
laravelコントローラ機能:
public function saveEmail(Request $request)
{
$user = Auth::user();
$this->validate($request, array(
'current_email' => 'required|email|exists:users,email,id,'. $user->id,
'email' => 'required|email|unique:users',
'verify_password' => 'required'
));
//Verify information user before updating
if($user->email != $request->current_email){
dd("Current Email is not the same");
}
if(! Hash::check($request->verify_password, $user->password)){
dd("Password incorrect, will not update");
}
//Update Email with Sucess
$user->email = $request->email;
}
Ajaxコード:
$(document).ready(function() {
$("#saveEmail").click(function (event) {
event.preventDefault();
saveEmail();
});
});
function saveEmail() {
var email = $("#current_email").val();
var new_email = $("#email").val();
var password = $("#verify_password").val();
var data = { current_email: email, email: new_email, verify_password: password }
$.ajax({
url: "company/saveEmail')}}",
type: 'POST',
data: data,
success: function (result) {
if (result == 0) {
//Email saved correctlly
var text = 'E-mail actualizado';
$('#saveOK').text(text);
$("#current_email").val("");
$("#email").val("");
$("#password").val("");
$("#ErrorEmail").css({ "display": "none" });
}
else if (result == 1) {
//"Incomplete data"
var error1 = 'The data are incomplete';
$("#lbtxtEmailError").text(error1);
$("#ErrorEmail").css({ "display": "block" });
}
else if (result == 2) {
//"Current email incorrect"
var error2 = 'Current email is incorrect';
$("#lbtxtEmailError").text(error2);
$("#ErrorEmail").css({ "display": "block" });
}
else if (result == 3) {
//"Incorrect format"
var error3 = 'The format is incorrect';
$("#lbtxtEmailError").text(error3);
$("#ErrorEmail").css({ "display": "block" });
}
else if (result == 4) {
//This email is already in use
var error4 = 'This email is already in use';
$("#lbtxtEmailError").text(error4);
$("#ErrorEmail").css({ "display": "block" });
}
else if (result == 5) {
//"Current password incorrect";
var error5 = 'Your password is incorrect';
$("#lbtxtEmailError").text(error5);
$("#ErrorEmail").css({ "display": "block" });
}
else if (result == 6) {
//"This user doesnt exist" id
var error6 = 'User doesnt exist';
$("#lbtxtEmailError").text(error6);
$("#ErrorEmail").css({ "display": "block" });
}
else if (result == 7) {
//"New email already exist"
var error7 = 'New email alreadu exist ';
$("#lbtxtEmailError").text(error7);
$("#ErrorEmail").css({ "display": "block" });
}
}
})
}
本当に役に立ちました、最後の1つの質問は、Authorize関数で$ userまたは$ requestを認識できませんでしたが、変数saynsは未定義ですが、私はそれをauthorize関数の初めに作成する必要がありますか?すでに定義されていないとしますか?ごめんなさい。 – Pedro
@Pedro喜んでそれは助け!私は答えを更新しました。 '$ user'は設定されておらず、コピー+貼り付けのためだけでした。それは 'auth() - > user()'でなければなりません。上記の編集をご覧ください。 – Ohgodwhy
ありがとう、助けをたくさんありますが、私はまだ "$ request"変数で同じ問題を抱えています、私はAuthorize()Request $リクエストを入れる必要がありますか? – Pedro