php not Laravel 4 Formulaire constructeur Macro champs personnalisés




laravel form select from database (4)

Im essayant de créer un champ de date HTML 5 personnalisé pour l'utilisation dans une vue de cadre de laravel 4.

{{
    Form::macro('datetime', function($field_name)
    { 
        return '';
    });         
}}

{{ Form::label('event_start', 'Event Date', array('class' => 'control-label')) }}
{{ Form::datetime('event_start') }}

Le seul problème est que la valeur n'est pas remplie, et je ne sais pas comment faire.

Im en utilisant ce formulaire pour créer et éditer un modèle appelé événement.

comment puis-je remplir la valeur de ce champ?


J'ai trouvé une autre façon de faire cela qui met mes macros dans un fichier nommé macros.php puis placez-le sous app/ directory avec routs.php et routs.php , puis dans l' app/start/global.php j'ai ajouté la ligne suivante à la fin

require app_path().'/macros.php'; 

cela chargera vos macros après que l'application a démarré et avant que la vue soit construite. il est plus net et suit la convention de Laravel parce que c'est la même façon que Laravel utilise pour charger le fichier filters.php .


Voici ce que j'ai fait:

à mon avis, j'ai ajouté la macro suivante

<?php
Form::macro('datetime', function($value) {
    return '<input type="datetime" name="my_custom_datetime_field" value="'.$value.'"/>';
});
...
...
// here's how I use the macro and pass a value to it
{{ Form::datetime($datetime) }}

L'utilisation d'une macro n'est pas nécessaire. Utilisez simplement la méthode d' Form::input prédéfinie de Laravel définissant la date comme votre type d'entrée désiré:

{{ Form::label('event_start', 'Event Date', array('class' => 'control-label')) }}
{{ Form::input('date', 'event_start', $default_value, array('class'=>'form-control')) }}

Cela semble ne pas être dans les documents principaux, mais dans les documents de l'API comme liés ci-dessus.


Cela fonctionne pour moi:

Form::macro('date', function($name, $value = null, $options = array()) {
$attributes = HTML::attributes($options);
$input =  '<input type="date" name="' . $name . '" value="' . $value . '"'. $attributes.'>';
return $input;
});

au lieu de faire

    foreach($options)

vous pouvez utiliser

    HTML::attributes($options)




laravel-4