gpt4 book ai didi

javascript - 使用 laravel 响应 ajax 和验证响应

转载 作者:行者123 更新时间:2023-12-02 14:31:54 27 4
gpt4 key购买 nike

我正在尝试使用 ajax 进行注册,使用 laravel 验证数据。我实现了发送,但没有实现如何返回验证错误并在js代码中接收错误并在div中显示错误。

我使用的是 Laravel 5.2 版本。感谢您的帮助:)

js:

function send(event){

event.preventDefault();

$.ajax({


type: 'post',
url: "{{route('NewUser')}}",
dataType: 'json',
data: {
name: $('#name').val(),
email: $('#email').val(),
password: $('#password').val(),
cpassword: $('#cpassword').val(),
_token: $('#new-user').attr('data-token')
},
success: function(errors){

$('#Register').modal('hide');

},
error: function(errors) {


}

});

}

laravel Controller :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;
use App\Http\Controllers\Controller;
use App\Http\Requests;

class UserController extends Controller
{
public function index()
{
return view('home');
}
public function NewUser(Request $request)
{

$this->validate($request,[
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:8|same:cpassword',
'cpassword'=> 'required|min:8'
]);

CreateNewUSer($request);

}

Protected function CreateNewUser(Request $request){

}

最佳答案

为了实现您的目标,我建议您使用FormRequest
首先创建表单请求类

php artisan make:request UserRequest

然后在 rules 中添加一些规则方法UserRequest

/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:8|same:cpassword',
'cpassword'=> 'required|min:8',
];
}

为了简单起见,所有用户都可以发出此请求(如果您想以这种方式检查用户权限,您应该查看文档)

/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}

在 Controller 中进一步

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;
use App\Http\Controllers\Controller;
use App\Http\Requests;

use App\Http\Requests\UserRequest;

class UserController extends Controller
{
public function index()
{
return view('home');
}
public function NewUser(UserRequest $request)
{
// laravel will validate request itself automatically and
// will go on if validate pass or will return back with
// status code 422, input and errors otherwise

CreateNewUSer($request);

}

Protected function CreateNewUser(Request $request){

}

最后,您可以使用 jQuery 的 ajax 捕获 js 脚本中的错误 .error()

function send(event){

event.preventDefault();

$.ajax({


type: 'post',
url: "{{route('NewUser')}}",
dataType: 'json',
data: {
name: $('#name').val(),
email: $('#email').val(),
password: $('#password').val(),
cpassword: $('#cpassword').val(),
_token: $('#new-user').attr('data-token')
},
success: function(errors){

$('#Register').modal('hide');

},
error: function(errors) {

//handle errors here

}

});

}

编辑将其放在具有ajax功能的js之前的 View

<script>
var userAjax = "{{ route('NewUser') }}";
</script>

和你的ajax js

 $.ajax({

type: 'post',
url: userAjax,
dataType: 'json',
// ...

关于javascript - 使用 laravel 响应 ajax 和验证响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37740550/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com