#laravel #laravel-8
Вопрос:
У меня есть проект Laravel 8, в котором у меня есть этот автоматический тест:
public function testCreateConvenioPagoDeProgramacionAdeudo()
{
$programacion = AdeudoProgramacion::select('adeudo_programacion.*')
->where('id', $this->idProgramacion)
->firstOrFail();
$response = $this->withLoggedUser()->json("POST", "api/convenios/crearPorProgramacionDeAdeudos/$programacion->id");
$response->assertCreated();
}
Этот тест пытается создать некоторые объекты с помощью этого метода при вызове URL-адреса:
public function storeAdeudoProgramacion(StoreConvenioPagoRequest $request, $idAdeudoProgramacion){
$adeudo = AdeudoProgramacion::select('adeudo_programacion.*')->where('id', $idAdeudoProgramacion)->firstOrFail();
$pagos = AdeudoPago::select("adeudo_pago.*")
->join('adeudo_programacion', 'adeudo_programacion.id', 'adeudo_pago.idProgramacion')
->where('adeudo_programacion.id', $idAdeudoProgramacion)->get();
$monto = $pagos->sum('monto');
$data = [
'idEstatus' => ConvenioPagoEstatus::PENDIENTE,
'comentarios' => ''
];
$convenio = ConvenioPago::create(
$data
);
if($convenio){
// Se crean los movimientos a partir de los pagos de la programación
$numero_pago = 1;
foreach($pagos as $pago){
$convenio_id = $convenio->id;
$data_movimiento = [
'idConvenio' => $convenio_id,
'idEstatus' => ConvenioPagoMovimientoEstatus::PENDIENTE,
'numeroPago' => $numero_pago,
'monto' => $pago->monto,
'fechaPagoPlaneada' => $pago->fechaPagoPlaneada,
'fechaPagoReal' => $pago->fechaPagoReal,
'periodoInicio' => $pago->periodoInicio,
'periodoFinal' => $pago->periodoFinal,
'comentarios' => 'Pago número '.$numero_pago
];
ConvenioPagoMovimiento::create(
$data_movimiento
);
$numero_pago = $numero_pago 1;
}
$aux = ConvenioPago::select(
'convenio_pago.id',
'convenio_pago_estatus.estatus',
'convenio_pago_origen.origen',
'relacion_laboral.idDerechohabiente',
'relacion_laboral.id',
'convenio_pago.idAdeudoProgramacion',
'convenio_pago.monto',
'convenio_pago.montoPagado',
'convenio_pago.saldo',
'convenio_pago.cantidadPagos',
'convenio_pago.pagosRealizados'
)
->join('convenio_pago_estatus', 'convenio_pago_estatus.id', 'convenio_pago.idEstatus')
->join('convenio_pago_origen', 'convenio_pago_origen.id', 'convenio_pago.idOrigen')
->join('relacion_laboral', 'relacion_laboral.id', 'convenio_pago.idRelacionLaboral')
->where('convenio_pago.id', $convenio->id)->first();
$data = [
'data' => $aux
];
return response()->json($data, 201);
}
return $this->response->errorBadRequest();
}
Я читал, что я мог получить эту ошибку из-за какой-то проверки, которая у меня где-то есть, но я не могу определить, где это может быть или где я мог бы искать.
Ответ №1:
Ответ 422, вероятно, вызван запросом вашей формы StoreConvenioPagoRequest
, обрабатывающим ответ JSON. Поскольку это ответ JSON, ошибки проверки должны быть включены.
Если вы dd($response->json())
, вы должны быть в состоянии увидеть, что неверно.