Hola tenia este error en el testing <code>Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 19 NOT NUL...

Germán Alejandro Niño

Germán Alejandro Niño

Pregunta
studenthace 4 años

Hola tenia este error en el testing

Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: posts.title (SQL: insert into "posts" ("updated_at", "created_at") values (2021-06-16 22:10:35, 2021-06-16 22:10:35))

Me di cuenta que era por un error en la prueba porque tenia mal escrito el camplo title:

$response = $this->json('POST', '/api/posts' , ['tile' => 'El post de prueba'] ); Lugar de $response = $this->json('POST', '/api/posts', [ 'title' => 'El post de prueba' ]);

Pero no veo la correlación entre el error reportado y el error en el codigo. Alguien me puede explicar el porque?

1 respuestas
para escribir tu comentario
    Matias Daniel Huentian Canales

    Matias Daniel Huentian Canales

    studenthace 4 años

    Ganinop, tiene todo el sentido. dentro de la estructura de la Tabla Post, se definió que el atributo "title" es obligatorio (en la migración, si no se deja como "nulleable(true)" se guardara como obligatorio dentro de la estructura ).

    En el response, lo que haces es enviar datos para que se guarden en el Post, pero al enviar mal el campo title, el controlador intentará crear aquel Post sin ningún title, pero la BBDD no lo permitirá dado que no se puede crear un registro con el atributo "title" vacío.

Curso de Introducción a Laravel

Curso de Introducción a Laravel

Crea un blog desde cero con Laravel usando TDD. Aprende a gestionar contenido, validar datos, y proteger tu API con autenticación de token. Configura rutas, controladores y vistas utilizando el sistema de plantillas Blade.

Curso de Introducción a Laravel
Curso de Introducción a Laravel

Curso de Introducción a Laravel

Crea un blog desde cero con Laravel usando TDD. Aprende a gestionar contenido, validar datos, y proteger tu API con autenticación de token. Configura rutas, controladores y vistas utilizando el sistema de plantillas Blade.