¿Hay una manera de definir options['inputDefaults']
a nivel de sitio que a cada formamanera de definir inputDefaults cakephp a nivel de sitio
Respuesta
TLDR:
pegar los 2 trozos de código de abajo en sus respectivos lugares, luego cambia la matriz $defaultOptions
a lo que quieras, voila. No altera ninguna de las funciones de FormHelper, excepto agrega valores predeterminados a Form->create
's inputDefaults
.
Explicación & Código:
Puede ampliar la FormHelper (más fácil de lo que parece) al hacer que su propia costumbre MyFormHelper
:
<?php
//create this file called 'MyFormHelper.php' in your View/Helper folder
App::uses('FormHelper', 'View/Helper');
class MyFormHelper extends FormHelper {
public function create($model = null, $options = array()) {
$defaultOptions = array(
'inputDefaults' => array(
'div' => false,
'label' => false
)
);
if(!empty($options['inputDefaults'])) {
$options = array_merge($defaultOptions['inputDefaults'], $options['inputDefaults']);
} else {
$options = array_merge($defaultOptions, $options);
}
return parent::create($model, $options);
}
}
Luego, en su AppController, incluyen el ayudante Formulario de De la siguiente manera (si ya tiene una variable $ helpers, simplemente agregue 'Form' => ...
):
public $helpers = array(
'Form' => array(
'className' => 'MyForm'
)
);
Esto hace que cada vez que llame al $this->Form
, realmente llame a su 'MyFormHelper' personalizado, y lo único que hace es establecer el inputDefaults
si no están especificados, luego continúe con la lógica normal encontrada en Cake's FormHelper.
Esto es realmente genial. Cambié esto un poco, para que use Hash :: merge, en lugar de array merge para mantenerlo en Cake Api. Además, llamé a la mía "AppFormHelper", pero eso es solo mi propio nombre: nombrar ayudantes es bastante flexible. ¡Gracias por el consejo!
Hash Clase: http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html
<?php
/**
* @file AppFormHelper.
* This allows you to create defaults for your forms.
*/
App::uses('FormHelper', 'View/Helper');
class AppFormHelper extends FormHelper {
public function create($model = null, $options = array()) {
$default = array(
'inputDefaults' => array(
'div' => false,
'class' => 'form-control',
'autocomplete' => 'off',
),
);
$options = Hash::merge($default, $options);
return parent::create($model, $options);
}
}
¿puedo añadir que el código de Dave anterior tiene un error en ella. La línea:
$options = array_merge($defaultOptions['inputDefaults'], $options['inputDefaults']);
provoca una "Notificación (8): Array para la conversión de cadenas [CORE/torta/Vista/helper.php, la línea 486]" cuando inputDefaults se especifica en tanto el del FormHelper extendida, así como en la forma misma.
Este error no está presente en la versión de kirikintha.
- 1. Definir svnSetting a nivel mundial
- 2. donde definir las constantes en cakephp
- 3. ¿Podemos definir una función de identidad de nivel de tipo de mayor nivel en Scala?
- 4. Mejor manera de definir el método estático
- 5. ¿Cuál es una forma adecuada de almacenar variables globales a nivel de sitio en un sitio de SharePoint?
- 6. ¿Definir un no-op de nivel superior en C++?
- 7. CakePHP Definición de constantes
- 8. Cómo agregar preprocesador definir a nivel mundial para la configuración de "depuración" en Xcode 4
- 9. a nivel de proyecto Leiningen Plugin
- 10. Cómo definir una constante a nivel mundial en C# (como DEBUG)
- 11. La mejor manera de cargar modelos en CakePHP 2.0
- 12. CakePHP: ¿la mejor manera de llamar a una acción de otro controlador con matriz como parámetro?
- 13. Access cakephp session (auth) from outside cakephp
- 14. C++ mejor manera de definir constantes de varios archivos
- 15. Cakephp: Pertenece a la relación
- 16. CakePHP sigue cerrándome
- 17. selector de primer nivel jQuery para niños mejor manera
- 18. ¿La mejor manera de definir diccionarios multidimensionales en python?
- 19. ¿Existe alguna manera simple y elegante de definir singletons?
- 20. Definir matriz y claves de manera literal - C#
- 21. cómo obtener valor de $ _SESSION en cakephp
- 22. En ASP clásico, ¿hay alguna manera de manejar los errores a nivel de aplicación?
- 23. ¿Por qué es JavaScript a nivel de bits O se comporta de manera extraña?
- 24. CakePHP: auto-referencial bidireccional hasMany A través de asociaciones
- 25. Vista de modelo múltiple de CakePHP
- 26. Panel de administración de CakePHP
- 27. enteros de nivel de tipo en ocaml
- 28. CakePHP - Selective SSL
- 29. CakePHP encontrar consulta a través de múltiples fuentes de datos
- 30. Agregando condiciones a Contable en CakePHP
+1 - Siempre pensé en hacer eso, pero nunca llegué a mirar cómo. – Dave