Bonjour,
Je suis en train de bosser sur des formulaires sur mon site web et je rencontre un problème avec ma checkbox. Je fonctionnne actuellement avec le dernier bootstrap. La syntaxe pour une checkbox sous bootstrap 3.* est :

div class="checkbox">
    <label>
      <input type="checkbox"> Check me out
    </label>
  </div>

Et mon input php c'est ca :

<?= $this->Form->input('online', array('label'=>"En ligne :",'type'=>'checkbox')); ?>

Et si je laisse juste mon input php ça me fait une grosse checkbox sale ...

Pouvez-vous m'aider ? Merci d'avance !

7 réponses


Lartak
Réponse acceptée

Bonjour.
En fait tu utilises la V2 de CakePHP.
Par contre, tu montres la méthode inputs, alors que tu utilises la méthode input dans ton code.
Tu peux toujours utiliser un plugin, tu te compliquera moins les choses.
Par exemple un plugin pour Bootstrap Twitter pour la V2 de CakePHP : Bootstrap Plugin for CakePHP » BoostCake.
Mais que ça ne t'empèches pas de mieux regarder la documentation de CakePHP pour l'utilisation du Helper Form.

Tu dois mettre le code HTML bootstrap dans ta fonction qui crée l'input pour que ce soit ce formatage qui soit utilisé..

Comme ça ? :

<?= $this->Form->input('online', array(<div class="checkbox"><label><input type="checkbox"> Check me out</label></div>)); ?>

Non, ta fonction 'input', quel est son code

Je ne la trouve pas ...

    public function inputs($fields = null, $blacklist = null, $options = array()) {
        $fieldset = $legend = true;
        $modelFields = array();
        $model = $this->model();
        if ($model) {
            $modelFields = array_keys((array)$this->_introspectModel($model, 'fields'));
        }
        if (is_array($fields)) {
            if (array_key_exists('legend', $fields) && !in_array('legend', $modelFields)) {
                $legend = $fields['legend'];
                unset($fields['legend']);
            }

            if (isset($fields['fieldset']) && !in_array('fieldset', $modelFields)) {
                $fieldset = $fields['fieldset'];
                unset($fields['fieldset']);
            }
        } elseif ($fields !== null) {
            $fieldset = $legend = $fields;
            if (!is_bool($fieldset)) {
                $fieldset = true;
            }
            $fields = array();
        }

        if (isset($options['legend'])) {
            $legend = $options['legend'];
        }
        if (isset($options['fieldset'])) {
            $fieldset = $options['fieldset'];
        }

        if (empty($fields)) {
            $fields = $modelFields;
        }

        if ($legend === true) {
            $actionName = __d('cake', 'New %s');
            $isEdit = (
                strpos($this->request->params['action'], 'update') !== false ||
                strpos($this->request->params['action'], 'edit') !== false
            );
            if ($isEdit) {
                $actionName = __d('cake', 'Edit %s');
            }
            $modelName = Inflector::humanize(Inflector::underscore($model));
            $legend = sprintf($actionName, __($modelName));
        }

        $out = null;
        foreach ($fields as $name => $options) {
            if (is_numeric($name) && !is_array($options)) {
                $name = $options;
                $options = array();
            }
            $entity = explode('.', $name);
            $blacklisted = (
                is_array($blacklist) &&
                (in_array($name, $blacklist) || in_array(end($entity), $blacklist))
            );
            if ($blacklisted) {
                continue;
            }
            $out .= $this->input($name, $options);
        }

        if (is_string($fieldset)) {
            $fieldsetClass = sprintf(' class="%s"', $fieldset);
        } else {
            $fieldsetClass = '';
        }

        if ($fieldset) {
            if ($legend) {
                $out = $this->Html->useTag('legend', $legend) . $out;
            }
            $out = $this->Html->useTag('fieldset', $fieldsetClass, $out);
        }
        return $out;
    }

Merci j'ai réglé mon probleme avec bootscake !