Tengo un archivo de definición de campos de formulario como el siguiente:

fields:
    pivot[hall]:
        label: Hall
        type: text
        span: auto

    pivot[booth]:
        label: Booth
        type: text
        span: auto

    booth_picker:
        label: Select Booth
        type: boothpicker
        span: full

El tercer campo es solo un widget de formulario que proporciona una forma visual conveniente de establecer el valor del campo booth. Por lo tanto, no necesito que el campo booth_picker sea enviado y guardado en la base de datos porque no existe tal campo en la tabla. Solo es necesario enviar y guardar hall y booth. Actualmente recibo este error:

SQLSTATE [42S22]: columna no encontrada: 1054 columna desconocida 'booth_picker' en 'lista de campos' (SQL: update users set updated_at = 2016-12-15 13:14:44, booth_picker = donde id = 37) "

¿Cómo puedo evitar que se envíe este campo auxiliar? ¿O tal vez hay una forma de eliminar este campo antes de que el modelo se guarde en la base de datos?

2
B Faley 15 dic. 2016 a las 16:18

2 respuestas

La mejor respuesta

Intente agregar un guión bajo antes de su nombre de campo (nueva función de Cms de octubre, por lo que tal vez necesite actualizarla a la versión 382)

Así _booth_picker

editar : no estoy seguro, pero parece que esta función no funciona con el campo de casilla de verificación :-(

4
pat-och 21 ago. 2018 a las 13:46

Podemos definir nombres de campo dentro de la propiedad purgeable.

Los atributos purgados no se guardarán en la base de datos cuando se crea o actualiza un modelo. Para purgar atributos en su modelo, aplique el rasgo October \ Rain \ Database \ Traits \ Purgeable y declare una propiedad $ purgeable con una matriz que contenga los atributos para purgar.

    /**
     * @var array List of attributes to purge.
     */

    protected $purgeable = ['booth_picker'];

Referencia

2
Thanooshan 19 nov. 2018 a las 06:54