Php 拉拉维尔请求
我对拉威尔和制作API还不熟悉。在我的项目中,使用我创建的查询进行数据验证不起作用。例如,当我尝试创建一个具有空字段的用户时,我会得到状态为200的主页。请告诉我如何修复此错误。我将向您展示route api.php和应用我创建的请求的一个控制器 AuthController:Php 拉拉维尔请求,php,laravel,validation,Php,Laravel,Validation,我对拉威尔和制作API还不熟悉。在我的项目中,使用我创建的查询进行数据验证不起作用。例如,当我尝试创建一个具有空字段的用户时,我会得到状态为200的主页。请告诉我如何修复此错误。我将向您展示route api.php和应用我创建的请求的一个控制器 AuthController: <?php namespace App\Http\Controllers; use App\Http\Requests\UserCreateRequest; use App\Http\Requests\User
<?php
namespace App\Http\Controllers;
use App\Http\Requests\UserCreateRequest;
use App\Http\Requests\UserLoginRequest;
use Egulias\EmailValidator\Exception\AtextAfterCFWS;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Builder;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use phpDocumentor\Reflection\DocBlock\Tags\Uses;
class AuthController extends Controller
{
public function store(UserCreateRequest $request){
$user = new User();
$user->login = $request->get('login');
$user->password = Hash::make($request->get('password'));
$user->fio = $request->get('fio');
$user->email = $request->get('email');
$user->number_phone = $request->get('number_phone');
$user->assignRole('user');
if (!$user->save()) {
return response()->json(['message'=>'Регистрация не удалась'], 422);
}
return response()->json(['message'=> 'Регистрация прошла успешно'], 200);
}
public function login(UserLoginRequest $request){
$user = User::query()->where('login', $request->get('login'))->first();
if (!$user || !Hash::check($request->get('password'), $user->password)) {
return response()->json(['message'=>'Попытка входа не удалась'], 422);
}
$token = $user->createToken('api_token')->plainTextToken;
$user->api_token = $token;
$user->save();
$user = Auth::login($user);
return response()->json(['message'=>Auth::user()->api_token], 200);
}
public function logout(Request $request) {
$request->user()->currentAccessToken()->delete();
return response()->json(['message' => 'Вы вышли из системы'], 200);
}
}
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UserCreateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'login' => 'required|string|unique:user,login',
'password' => 'required|string|min:8|max:30',
'fio' => 'required|string',
'email' => 'required|email|string',
'number_phone' => 'required|string|min:10'
];
}
public function messages()
{
return [
'login.required' => 'Поле "Логин" обязательно',
'login.string' => 'Поле "Логин" должно содержать только буквы и цифры',
'login.unique:user,login' => 'Логин должен быть уникальным',
'password.required' => 'Поле "Пароль" обязательно',
'password.string' => 'Поле "Пароль" должно содержать только буквы и цифры',
'password.min:8' => 'Поле "Пароль" должно содержать не менее 8 символов',
'password.max:30' => 'Поле "Пароль" должно содержать не более 30 символов',
'fio.required' => 'Поле "ФИО пользователя" обязательно',
'fio.sring' => 'Поле "ФИО пользователя" должно содержать только буквы и цифры',
'email.required' => 'Поле "Email" обязательно',
'email.email' => 'Поле "Email" должно соответствовать своему типу',
'email.string' => 'Поле "Email" должно содержать только буквы и цифры',
'number_phone.required' => 'Поле "Номер телефона" обязательно',
'number_phone.string' => 'Поле "Номер телефона" должно содержать только буквы и цифры',
'number_phone.min:10' => 'Поле "Номер телефона" должно содержать не менее 10 символов',
];
}
}
换衣服
$request->get('login')
到
还是这个
$request->login
。你能给我看看用户模型吗?还有,dd($request->all())的结果是什么,把它放在存储函数的第一行我还不能编辑我的答案。它表示建议的编辑队列已满。我尝试了dd($request->all())。结果是一样的。如果用户创建请求更改为Request,那么我将从formI show to User模型获取数据
$request->get('login')
$request->input('login')
$request->login