preEdit not working

preEdit not working

alf007alf007 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

Answers

  • allanallan Posts: 63,791Questions: 1Answers: 10,512 Site admin
    Answer ✓

    Hi,

    I may have missed something, but wouldn't you use preCreate rather than preEdit if you want to set the date when the row is created?

    Allan

  • alf007alf007 Posts: 37Questions: 15Answers: 0

    Thanks again!

This discussion has been closed.