提问人:kapi 提问时间:10/12/2023 最后编辑:Paul T.kapi 更新时间:10/12/2023 访问量:46
Laravel 10:验证不适用于所有字段
Laravel 10: The validate not Work with all fields
问:
我有下一个问题,我需要一些帮助。
我有一个简单的表格:
@if (session('error'))
<div class="position-fixed bottom-0 end-0 alert alert-danger">
{{ session('error') }}
</div>
@endif
@error('nombre')
<div class="position-fixed bottom-0 end-0 alert alert-danger">
{{ $message }}
</div>
@enderror
<form method="POST" action="{{ route('user') }}">
@csrf
<input type="text" name="nombre">
<input type="text" name="alias" >
<input type="submit" value="Crear" class="btn btn-primary my-2" />
</form>
然后在控制器中:
namespace App\Http\Controllers;
use App\Models\UserModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
public function store(Request $request):Request
{
$this->validate($request, [
'name'=>'nullable|required',
'alias'=>'nullable|required'
]);
$usuario = new UsuariosModel;
$usuario->name= $request->name;
$usuario->alias = $request->alias;
$usuario->save();
return redirect()->route('usuarios')->with('success','Usuario creado correctamente.');
}
和路线:
Route::post('/user', [UserController::class, 'store'])->middleware('auth')->name('user');
如果我删除验证,插入工作正常,名称验证成功,但别名不成功。
如果我只放,它没有任何作用。'alias'=>'nullable|required'
我无法以这种简单的形式找到错误。
答:
0赞
shozue
10/12/2023
#1
刀片形式
<form method="POST" action="{{ route('user') }}">
@csrf
<input type="text" name="name">
<input type="text" name="alias" >
<input type="submit" value="Crear" class="btn btn-primary my-2" />
</form>
Usuarios模型
class UsuariosModel extends Model
{
use HasFactory;
protected $fillable = [
'name',
'alias ',
];
}
控制器
public function store(StoreRequest $request):Request
{
$usuario = UsuariosModel::create($request->validated());
return redirect()->route('usuarios')->with('success','Usuario creado correctamente.');
}
Noew 使用 artisan 创建商店请求
php artisan make:request StoreRequest
并将 authorization 返回 true
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'name' => 'required|string',
'alias' => 'required|string',
];
}
}
如果您使用 nullable,则没有错误,只需删除 nullable
评论
name
alias
nombre
alias
name=
'alias'=>'nullable|required'
required
nullable
nullable
required