c'è un modo per definire options['inputDefaults']
a livello di sito a quello ad ogni formamodo per definire inputDefaults CakePHP a livello di sito
risposta
TLDR:
incollare i 2 pezzi di codice qui sotto nei rispettivi punti, quindi modifica l'array $defaultOptions
in base alle tue esigenze: voilà. Non altera nessuna delle funzioni di FormHelper, tranne aggiunge le impostazioni predefinite allo inputDefaults
Form->create
.
Spiegazione & Codice:
È possibile estendere la FormHelper (più facile di quanto sembri), rendendo il proprio personalizzato 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);
}
}
Poi, nel vostro AppController, includono l'helper Forma in il modo seguente (se hai già una variabile $ helper, aggiungi solo 'Form' => ...
):
public $helpers = array(
'Form' => array(
'className' => 'MyForm'
)
);
Questo rende così ogni volta che si chiama $this->Form
, in realtà chiama il tuo personalizzato 'MyFormHelper' - e l'unica cosa che fa è impostare il inputDefaults
se non sono specificati, quindi continuare a fare la logica normale trovato in Cake's FormHelper.
Questo è davvero grandioso - l'ho modificato un po ', in modo da utilizzare Hash :: merge, invece di array merge per tenerlo in Cake Api. Inoltre, ho chiamato il mio "AppFormHelper" - ma questa è solo la mia denominazione: la denominazione degli helper è piuttosto semplice. Grazie per il consiglio!
Hash Classe: 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);
}
}
Posso si prega di aggiungere che il codice di Dave ha un bug in esso sopra. La linea:
$options = array_merge($defaultOptions['inputDefaults'], $options['inputDefaults']);
Provoca un "Avviso (8): Array alla conversione string [core/torta/Vista/helper.php, linea 486]" quando inputDefaults è specificato sia nel l'FormHelper estesa così come nella forma stessa.
Questo bug non è presente nella versione di kirikintha.
- 1. dove definire le costanti in cakephp
- 2. Django: prefisso URL a livello di sito
- 3. Qual è un modo corretto per memorizzare le variabili globali a livello di sito in un sito di SharePoint?
- 4. CakePHP continua a disconnettermi
- 5. Dove definire un logger statico a livello di applicazione?
- 6. Definire le importazioni predefinite a livello di pacchetto
- 7. CakePHP 2.x ACL - Controllo a livello proprietario
- 8. Controllo del reindirizzamento del sito Web, a livello di programmazione
- 9. Passaggio a livello di applicazione a livello di programma in modo programmatico?
- 10. Il modo migliore per installare IIS7 a livello di programmazione
- 11. Un modo per reimpostare a livello di codice le classifiche?
- 12. C'è un modo per codificare LaunchScreen a livello di programmazione
- 13. In che modo i siti di grandi dimensioni ottengono le autorizzazioni a livello di riga?
- 14. Qual è il modo drupal per definire le costanti globali?
- 15. CakePHP Definizione di costanti
- 16. definire la proprietà dynamicUpdate a livello di applicazione per tutte le entità?
- 17. Come per includere un file PHP a livello di sito Utilizzando .htaccess o altri metodi
- 18. Android - come definire ShapeDrawables al livello di programmazione?
- 19. Modo corretto per definire l'array di enumerazioni nello schema JSON
- 20. Modo canonico per definire l'iteratore di output in avanti
- 21. corretto modo per definire variabili di classe in Python
- 22. Applicazione CakePHP/CakePHP 2.4
- 23. modo migliore per costruire sito di aggiornamento per RCP app
- 24. Numeri di versione per CakePHP
- 25. Un modo per aggiungere HttpHandler a livello di programmazione in .NET?
- 26. Il modo migliore per caricare i modelli in CakePHP 2.0
- 27. Accesso alla sessione cakephp (auth) dall'esterno cakephp
- 28. C'è un modo per definire il controllo dell'intervallo di HTML5?
- 29. Come creare una Sitemap per CakePHP?
- 30. .htaccess per cakephp
+1 - ho sempre pensato di farlo, ma non sono mai riuscito a vedere come. – Dave