2012-03-09 12 views
12

मैं FOSUserBundle (Symfony2) में एक नया उपयोगकर्ता बनाने के लिए करना चाहते हैं, लेकिन मैं हमेशा एक ही संदेश (i php app/console fos:user:create उपयोग कर रहा हूँ) मिलती है:FOSUserBundle कोई एनकोडर के लिए कॉन्फ़िगर किया गया है: एक नया उपयोगकर्ता बनाने

नहीं एन्कोडर को "MyProject \ UserBundle \ Entity \ User" खाते के लिए कॉन्फ़िगर किया गया है।

आयात सही क्रम में हैं

public function registerBundles() 
{ 
    $bundles = array(
     //... 
     new MyProject\UserBundle\MyProjectUserBundle(), 
     new FOS\UserBundle\FOSUserBundle(), 
    ); 

सुरक्षा फ़ाइल:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

लेकिन मैं हमेशा एक ही त्रुटि मिल रही है ... क्या आप जानते हैं कि यह कैसे तय करने के लिए ? solution here मेरे लिए काम नहीं कर रहा

धन्यवाद

उत्तर

38

उदाहरण के लिए एनकोडर विन्यास में अपने स्वयं के उपयोगकर्ता की क्लास याद कर रहे हैं,:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     MyProject\UserBundle\Entity\User: sha512 

वैकल्पिक रूप से आप यह बहुत तरह FOSUserBundle इंटरफेस पर मिलान कर सकते हैं :

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     FOS\UserBundle\Model\UserInterface: sha512 
+0

भी होना चाहिए! यह काम करता है, मुझे 'php -c' का उपयोग करना था, फिर 'date.timezone' के साथ usr> private> php.ini का मार्ग और अंततः उपयोगकर्ता को बनाना था। धन्यवाद Seldaek! – Paul

1

Symfony 2.7 के लिए आप इस विन्यास का उपयोग करना चाहिए

security: 
encoders: 
    FOS\UserBundle\Model\UserInterface: bcrypt 

लेकिन! आपके पास php5.5 और Apache2.4/Ngnix