preEdit not working
preEdit not working
alf007
Posts: 37Questions: 15Answers: 0
Hi!
I need to put the date only when I add a record. I used the preEdit that worked correctly before I added 2 join instructions. Below is my code. I checked the data when I send it to the server and I didn't saw the field: modelos.fecha_creacion
inside. What could be happening?
// Build our Editor instance and process the data coming from _POST
Editor::inst( $db, 'modelos', 'modelos.idModelos' )
->fields(
Field::inst( 'modelos.fecha_creacion' )->set( Field::SET_CREATE )
->getFormatter( function ( $val, $data, $opts ) {
return date( 'd-m-Y', strtotime( $val ) );
} ),
Field::inst( 'modelos.idCategorias' )
->validator( 'Validate::notEmpty',
array(
"message" => "Campo obligatorio"
))
->options( 'categorias', 'idCategorias', 'nombre',
function ($q) {
$q->where( 'categorias.mostrar', 'Si', '=' );
} )
->validator( 'Validate::dbValues' ),
Field::inst( 'categorias.nombre' ),
Field::inst( 'modelos.idUsuarios' )
->setValue( $_SESSION['usuario'] ),
Field::inst( 'modelos.nombre' )
->validator( 'Validate::notEmpty',
array(
"message" => "Campo obligatorio"
)),
Field::inst( 'modelos.descripcion' )
->validator( 'Validate::notEmpty',
array(
"message" => "Campo obligatorio"
)),
Field::inst( 'modelos.es_gratis' )
->validator( 'Validate::notEmpty',
array(
"message" => "Campo obligatorio"
)),
Field::inst( 'modelos.es_venta' )
->validator( 'Validate::notEmpty',
array(
"message" => "Campo obligatorio"
)),
Field::inst( 'modelos.precio' ),
Field::inst( 'modelos.etiquetas' )
->validator( 'Validate::notEmpty',
array(
"message" => "Campo obligatorio"
)),
Field::inst( 'modelos.tipo' )
->validator( 'Validate::notEmpty' ,
array(
"message" => "Campo obligatorio"
))
)
->on( 'preEdit', function ( $editor, $values ) {
$editor
->field( 'modelos.fecha_creacion' )
->setValue( date("Y-m-d") );
} )
->join(
Mjoin::inst( 'archivos_modelos' )
->link( 'modelos.idModelos', 'archivos_usuarios.modelo_id' )
->link( 'archivos_modelos.idArchivos_Modelos', 'archivos_usuarios.archivo_id' )
->fields(
Field::inst( 'idArchivos_Modelos' )
->upload( Upload::inst( $_SERVER['DOCUMENT_ROOT'].'/usuarios/' )
->db( 'archivos_modelos', 'idArchivos_Modelos', array(
'nombre_archivo' => Upload::DB_FILE_NAME,
'tamano_archivo' => Upload::DB_FILE_SIZE,
'ruta_web' => Upload::DB_WEB_PATH,
'ruta_sistema' => Upload::DB_SYSTEM_PATH
) )
->validator( function ( $file ) {
$type = finfo_file(finfo_open(FILEINFO_MIME_TYPE),$file['tmp_name']);
return $type == "application/octet-stream" ?
"Los archivos STL deben de ser en formato ASCII" :
null;
} )
->allowedExtensions( [ 'stl', 'obj' ], "Por favor carga un archivo STL u OBJ" )
)
)
)
->join(
Mjoin::inst( 'imagenes_modelos' )
->link( 'modelos.idModelos', 'imagenes_usuarios.modelo_id' )
->link( 'imagenes_modelos.idImagenes_Modelos', 'imagenes_usuarios.archivo_id' )
->fields(
Field::inst( 'idImagenes_Modelos' )
->upload( Upload::inst( $_SERVER['DOCUMENT_ROOT'].'/usuarios/' )
->db( 'imagenes_modelos', 'idImagenes_Modelos', array(
'nombre_archivo' => Upload::DB_FILE_NAME,
'tamano_archivo' => Upload::DB_FILE_SIZE,
'ruta_web' => Upload::DB_WEB_PATH,
'ruta_sistema' => Upload::DB_SYSTEM_PATH
) )
->validator( function ( $file ) {
return $file['size'] >= 50000 ?
"El tamaño del archivo debe ser menor a 50 KB" :
null;
} )
->allowedExtensions( [ 'jpg', 'png', 'jpeg' ], "Por favor carga un archivo JPG, JPEG o PNG" )
)
)
)
->leftJoin( 'categorias', 'categorias.idCategorias', '=', 'modelos.idCategorias' )
->where('idUsuarios',$_SESSION['usuario'],'=')
->process( $_POST )
->json();
Hope you can help me out.
Thanks.
This question has an accepted answers - jump to answer
This discussion has been closed.
Answers
Hi,
I may have missed something, but wouldn't you use
preCreate
rather thanpreEdit
if you want to set the date when the row is created?Allan
Thanks again!