php 我有验证器的问题,而不是显示错误(所有都像laravel文档)

vbopmzt1  于 12个月前  发布在  PHP
关注(0)|答案(1)|浏览(124)

`嗨,伙计们,我不知道为什么错误不能显示在视图上,但验证发现. enter image description hereenter image description here的形式是在模态与引导.这是控制器:

public function store_alumno(Request $request)
{
    $validator =Validator::make($request->all(), [
        'nombre' => 'required|max:100|min:3',
        'apellido' => 'required|max:100|min:3',
        'dni' => 'required|numeric|digits:8',
        'telefono' => 'required|numeric|digits:10',
        'nacimiento' => 'required',
        'curso' => 'required|exists:cursos|curso',
        'division' => 'required_with:curso|exists:cursos,division',
    ])->validate('usuario');
    return response(['usuario' => $validator->errors()], 201);
    //Alumnos
    $nombre = $request->input('nombre');
    $apellido = $request->input('apellido');
    $dni = $request->input('dni');
    $nacimiento = $request->input('nacimiento');
    $telefono = $request->input('telefono');
    //curso
    $curso = $request->input('curso');
    $division = $request->input('division');
    $id_curso = 0;
    $id_curso = DB::table('cursos')->where('division','=',$division)->where('curso','=',$curso)->value('id');
    if($id_curso == 0)
    {
        DB::table('cursos')->insert([
            'curso' => $curso,
            'division' => $division
        ]);
        $id_curso = DB::table('cursos')->where('division','=',$division)->where('curso','=',$curso)->value('id');
    }
    $alumnos = 0;
    $alumnos = DB::table('alumnos')->where('dni','=',$dni)->value('id');
    if($alumnos == 0)
    {
        DB::table('alumnos')->insert([
            'nombre' => $nombre,
            'apellido' => $apellido,
            'dni' => $dni,
            'telefono' => $telefono,
            'nacimiento' => $nacimiento,
            'tutor' => $tutor, //hacer algoritmo de filtrado
            'cursos' => $id_curso, //hacer algoritmo de filtrado
        ]);
        return  $nombre;
    }
    else
    {
         return "el alumno ya esta en el sistema";
    }
}

字符串
这是显示错误的块码:

@if ($errors->any())
<div class="alert alert-danger">
    <ul>
       @foreach ($errors->usuario->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>
@endif


我尝试使用validateWithBag并返回redirect('index')->withErrors($validator,'usuario');`

gudnpqoy

gudnpqoy1#

看起来你试图在验证中使用一个命名的错误包'usuario',但你没有正确地将错误与这个包关联起来。

public function store_alumno(Request $request)
{
    $validator = Validator::make($request->all(), [
        'nombre' => 'required|max:100|min:3',
        'apellido' => 'required|max:100|min:3',
        'dni' => 'required|numeric|digits:8',
        'telefono' => 'required|numeric|digits:10',
        'nacimiento' => 'required',
        'curso' => 'required|exists:cursos|curso',
        'division' => 'required_with:curso|exists:cursos,division',
    ]);

    if ($validator->fails()) {
        return redirect('index')
            ->withErrors($validator, 'usuario')
            ->withInput();
    }

    // Rest of your code...
}

字符串
您尝试在Blade视图中显示错误的方式可能不正确。在Laravel中,错误通常使用$errors变量显示,并且在检查错误时不需要指定包。

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

相关问题