2012-04-10 11 views
11

का उपयोग करते समय त्रुटि मैं एक सिलेक्स एप्लिकेशन में टहनियों का उपयोग करके एक सिम्फनी फॉर्म प्रस्तुत करने की कोशिश कर रहा हूं। मैं सिम्फनी 2 फॉर्म लाइब्रेरी, सिम्फनी ब्रिज ट्विग फॉर्म एक्सटेंशन और ट्विग का उपयोग कर रहा हूं।सिम्फनी फॉर्म/सिलेक्स और ट्विग

require_once __DIR__ . '/../app/silex.phar'; 
$app = new Silex\Application(); 

$app['debug'] = true; 

// Set up the autoloader 
require_once __DIR__ . '/../app/vendor/.composer/autoload.php'; 

// Load Configuration into container 
$parser = new Symfony\Component\Yaml\Parser(); 
$config = $parser->parse(file_get_contents(__DIR__ . '/../app/config/config.yml')); 
$app['config'] = $config; 

// Set up Symfony bridge (nice twig functions) 
$app->register(new Silex\Provider\SymfonyBridgesServiceProvider(), array(
'symfony_bridges.class_path' => __DIR__ . '/vendor/symfony/twig-bridge', 
)); 

// Set Up Templating 
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__ . '/../app/views', 
'twig.class_path' => __DIR__ . '/../app/vendor/twig/twig/lib', 
)); 

// Set Up Database 
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
    'driver' => $app['config']['db']['driver'], 
    'host' => $app['config']['db']['host'], 
    'user' => $app['config']['db']['user'], 
    'password' => $app['config']['db']['password'], 
    'dbname' => $app['config']['db']['dbname'] 
), 
'db.dbal.class_path' => __DIR__ . '/vendor/doctrine/doctrine-dbal/lib', 
'db.common.class_path' => __DIR__ . '/vendor/doctrine/doctrine-common/lib', 
)); 

// Set up the Symfony forms component 
$app->register(new Silex\Provider\FormServiceProvider()); 

// Routes 
$app->get('/', function() use($app) 
{ 
    return $app['twig']->render('index.twig', array()); 
}); 

$app->get('/info', function() use($app) 
{ 
    return $app['twig']->render('info.twig', array()); 
}); 

$app->get('/register', function() use($app) 
{ 

    $builder = $app['form.factory']->createBuilder(new MppInt\Form\Type\RegisterType()) 
    ->add('id', 'text') 
    ->add('firstName', 'text') 
    ->add('lastName', 'text') 
    ->add('email', 'password') 
    ->add('password', 'text'); 
    $form = $builder->getForm(); 
    return $app['twig']->render('register.twig', array('form' => $form->createView())); 
}); 


$app->run(); 

मैं निम्नलिखित त्रुटि मिलती है:

Twig_Error_Runtime: परिवर्तनशील "अक्षम" मौजूद नहीं है

यहाँ मेरी bootsrap फ़ाइल है।

स्टैक ट्रेस बहुत बड़ी है, लेकिन यहाँ पहले दो प्रविष्टियों हैं:

  1. in /nfs/personaldev/bwaine/mpp-audit/app/vendor/twig/twig/lib/Twig/Template.php line 303

  2. at Twig_Template->getContext(array('value' => '', 'attr' => array(), 'form' => object(FormView), 'id' => 'register_firstName', 'name' => 'firstName', 'full_name' => 'register[firstName]', 'errors' => array(), 'read_only' => false, 'required' => true, 'max_length' => null, 'pattern' => null, 'size' => null, 'label' => 'Firstname', 'multipart' => false, 'types' => array('field', 'text'), 'type' => 'text'), 'disabled') in /nfs/personaldev/bwaine/mpp-audit/app/vendor/twig/twig/lib/Twig/Environment.php(314) : eval()'d code line 986

किसी को क्या हो रहा है किसी भी विचार आया है?

संपादित करें -

मुझे लगता है कि 'अक्षम' चर डिफ़ॉल्ट टेम्पलेट में है।

विक्रेता से/सिम्फोनी/टहनी-पुल/Symfony/पुल/टहनी/संसाधन/विचारों/प्रपत्र/form_div_layout.html.twig

{% block widget_attributes %} 
{% spaceless %} 
id="{{ id }}" name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{%  if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif  %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{  pattern }}"{% endif %} 
    {% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %} 
{% endspaceless %} 
{% endblock widget_attributes %} 

अनुरोध किया के रूप में - register.twig

register.twig

{% extends "base.twig" %} 

{% block title %}Welcome to Nuts.co.uk{% endblock %} 
{% block head %} 
{{ parent() }} 
{% endblock %} 
{% block content %} 

<div class="row"> 
<div class="span12"> 
    <h2>Register</h2> 
    <p> 
     Register for Nuts.co.uk and we'll give you free access to cool stuff 
     in addition you can subscribe to our premium content. 
    </p> 



    <form action="/contact" method="post"> 
     <fieldset > 
      <legend>Contact</legend> 

       {{ form_errors(form) }} 
       {{ form_row(form.firstName) }} 
       {{ form_row(form.lastName) }} 
       {{ form_row(form.email) }} 
       {{ form_row(form.password) }} 

      <button type="submit" class="btn btn-info">Send</button> 

     </fieldset> 
    </form> 
</div> 
</div> 


{% endblock %} 
+1

कृपया 'register.twig' का स्रोत भी प्रदान करें। – igorw

उत्तर

3

आप एक चर अपने टहनी टेम्पलेट में अक्षम है (जैसा कि {{विकलांग}} या एक अगर बयान शायद में) आप टेम्पलेट से गुजर नहीं कर रहे हैं ज़रिये जुड़े हुए हैं। उपरोक्त चिपकने वाले कोड में मुझे 'अक्षम' नामक कोई वैरिएबल दिखाई नहीं देता है जिसे twig को पास किया जा रहा है ...

+0

हे स्कूप - ऐसा लगता है कि वेरिएबल 'डिफ़ॉल्ट' फॉर्म को प्रस्तुत करने के लिए उपयोग किए जाने वाले डिफ़ॉल्ट टेम्पलेट में है। मुझे लगता है कि यह स्वचालित रूप से कहीं भी सेट किया जाएगा। –