我正在从之前的开发人员开发一个CakePHP项目,这是我第一次在cakePHP上做任何事情。这就是我正在努力解决的问题,我正在尝试设置一个需要填充数据的许多字段的添加视图。在“保存”视图上的数据之后,它应该让你保存,除非有一些缺少的字段(由于sql插入)。我遇到的问题是我尝试重定向回到同一页面(错误之后)并将之前输入的数据传递回添加视图。
我的另一个问题是,如果在我进行重定向添加/ 0之后,它不起作用它只是去添加/如果我不处理空值而给我错误。
这是我的一些代码。
PresupuestosController.php
function add( $cliente_id = 0 )
{
.... some code
if ( $this->request->is( 'post' ) ) {
$request = $this->request->data;
... some more code
if ( $this->Presupuesto->save( $presupuesto ) ) {
//here i'm getting most of my errors where PresupuestoDetalle is not 'defined' so I get errors of missing fields.
foreach ( $request['PresupuestoDetalle'] as $articulo ) {
$presupuesto_detalle = $this->PresupuestoDetalle->create();
$presupuesto_detalle['presupuesto_id'] = $this->Presupuesto->getInsertID();
$presupuesto_detalle['articulo_id'] = $articulo['articulo_id'];
$presupuesto_detalle['cantidad'] = $articulo['cantidad'];
$presupuesto_detalle['monto'] = $articulo['monto'];
$presupuesto_detalle['descuento'] = $articulo['descuento'];
$presupuesto_detalle['familia_id'] = $this->Articulo->field( 'familias_id', array( 'id' => $articulo['articulo_id'] ) );
$presupuesto_detalle['categoria_id'] = $this->Familia->field( 'categoria_id', array( 'id' => $presupuesto_detalle['familia_id'] ) );
$detalle_guardado = $this->PresupuestoDetalle->save( $presupuesto_detalle );
}
}else{
$detalle_guardado = false;
}
if ( $detalle_guardado ) {
$this->Session->setFlash( 'El presupuesto se creó satisfactoriamente.', 'messages/green' );
echo json_encode($this->Session); die();
if ( $cliente_id != '0' ) {
$this->redirect( '/Presupuestos/edit/' . $cliente_id . '#tab_presupuestos' );
}
else {
$this->redirect( '/Presupuestos/index' );
}
}
else {
$this->Session->setFlash( 'No se pudo guardar el detalle del presupuesto. Por favor revise los datos.', 'messages/red');
$this->redirect( '/Presupuestos/add/0' );
}
}
else {
$this->Session->setFlash('No se pudo guardar el presupuesto. Por favor revise los datos.', 'messages/red');
$this->redirect( '/Presupuestos/add/0' );
}
}
else {
$this->Session->setFlash('No se pudo guardar la información de relevamiento. Por favor revise los datos.', 'messages/red');
$this->redirect( '/Presupuestos/add/0' );
}
}
但我正在定义PresupuestoDetalle。这就是我用来创建输入的东西,所以我认为它应该作为PresupuestoDetalle传递给控制器......
<?php
echo $this->Form->input( 'PresupuestoDetalle.' . $detalle['index'] . '.cantidad',
array(
'label' => false,
'div' => 'input text',
'class' => 'easyui-numberbox cantidad',
'data-options' => $numberbox_dataoptions,
'type' => 'text',
'style' => 'width: 60px;',
'value' => isset( $detalle['valor'] ) ? $detalle['valor']['cantidad'] : ''
));
?>
答案 0 :(得分:1)
用户
$this->redirect($this->referer());
它重定向到上一页