5

मैं सोनाटाडॉक्ट्राइनमोन्गो डीबीडीडमिनबंडल और इसकी निर्भरता जैसे सोनाटाउसरबंडल को स्थापित करने के लिए पर्याप्त संसाधन की कमी के कारण वास्तव में परेशान हो रहा हूं। मैं 15 दिनों के लिए इस बंडल को स्थापित करने की कोशिश कर रहा हूं। मैंने agaian हर चीज किया और फिर सोनाटा के आधिकारिक पृष्ठ में क्या कह रहा है। लेकिन यह ठीक से काम नहीं करता है। sonataUserBundle ApplicationUserBundle के रूप में विस्तार के बाद मेरा अंतिम दस्तावेज हैं:SonataDoctrineMongoDBAdminBundle को ठीक से कैसे स्थापित करें?

User.php

<?php 

/** 
* This file is part of the <name> project. 
* 
* (c) <yourname> <youremail> 
* 
* For the full copyright and license information, please view the LICENSE 
* file that was distributed with this source code. 
*/ 

namespace Application\Sonata\UserBundle\Document; 

use Sonata\UserBundle\Document\BaseUser as BaseUser; 

/** 
* This file has been generated by the EasyExtends bundle (http://sonata-project.org/bundles/easy-extends) 
* 
* References : 
* working with object : http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/working-with-objects.html 
* 
* @author <yourname> <youremail> 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @var integer $id 
    */ 
    protected $id; 

    /** 
    * Get id 
    * 
    * @return integer $id 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 
} 

Group.php

<?php 

/** 
* This file is part of the <name> project. 
* 
* (c) <yourname> <youremail> 
* 
* For the full copyright and license information, please view the LICENSE 
* file that was distributed with this source code. 
*/ 

namespace Application\Sonata\UserBundle\Document; 

use Sonata\UserBundle\Document\BaseGroup as BaseGroup; 

/** 
* This file has been generated by the EasyExtends bundle (http://sonata-project.org/bundles/easy-extends) 
* 
* References : 
* working with object : http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/working-with-objects.html 
* 
* @author <yourname> <youremail> 
*/ 
class Group extends BaseGroup 
{ 
    /** 
    * @var integer $id 
    */ 
    protected $id; 

    /** 
    * Get id 
    * 
    * @return integer $id 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 
} 

config.yml

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 

framework: 
    #esi:    ~ 
    translator:  { fallback: %locale% } 
    secret:   %secret% 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: %kernel.debug% 
    form:   ~ 
    csrf_protection: ~ 
    validation:  { enable_annotations: true } 
    templating: 
     engines: ['twig'] 
     #assets_version: SomeVersionScheme 
    default_locale: "%locale%" 
    trusted_proxies: ~ 
    session:   ~ 
    fragments:  ~ 

# Twig Configuration 
twig: 
    debug:   %kernel.debug% 
    strict_variables: %kernel.debug% 

# Assetic Configuration 
assetic: 
    debug:   %kernel.debug% 
    use_controller: false 
    bundles:  [ ] 
    #java: /usr/bin/java 
    filters: 
     cssrewrite: ~ 
     #closure: 
     # jar: %kernel.root_dir%/Resources/java/compiler.jar 
     #yui_css: 
     # jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar 

# Swiftmailer Configuration 
swiftmailer: 
    transport: %mailer_transport% 
    host:  %mailer_host% 
    username: %mailer_user% 
    password: %mailer_password% 
    spool:  { type: memory } 

doctrine_mongodb: 
    connections: 
     default: 
      server: mongodb://localhost:27017 
      options: {} 
    default_database: test_database 
    document_managers: 
     default: 
      auto_mapping: true 


# app/config/config.yml 
sonata_block: 
    default_contexts: [cms] 
    blocks: 
     sonata.admin.block.admin_list: 
      contexts: [admin] 

     #sonata.admin_doctrine_orm.block.audit: 
     # contexts: [admin] 

     sonata.block.service.text: 
     sonata.block.service.rss: 

     # Some specific block from the SonataMediaBundle 
     #sonata.media.block.media: 
     #sonata.media.block.gallery: 
     #sonata.media.block.feature_media:  


sonata_user: 
    security_acl: false 
    manager_type: mongodb # can be orm or mongodb 

sonata_admin: 
    security: 
     handler: sonata.admin.security.handler.role 

    title:  Sonatas Project 
    title_logo: /bundles/sonataadmin/logo_title.png 
    templates: 
     # default global templates 
     layout: SonataAdminBundle::standard_layout.html.twig 
     ajax: SonataAdminBundle::ajax_layout.html.twig 
     dashboard: SonataAdminBundle:Core:dashboard.html.twig 

     # default actions templates, should extend a global templates 
     list: SonataAdminBundle:CRUD:list.html.twig 
     show: SonataAdminBundle:CRUD:show.html.twig 
     edit: SonataAdminBundle:CRUD:edit.html.twig 

    dashboard: 
     blocks: 
      # display a dashboard block 
      - { position: left, type: sonata.admin.block.admin_list } 

      # Customize this part to add new block configuration 
      - { position: right, type: sonata.block.service.text, settings: { content: "<h2>Welcome to the Sonata Admin</h2> <p>This is a <code>sonata.block.service.text</code> from the Block Bundle, you can create and add new block in these area by configuring the <code>sonata_admin</code> section.</p> <br /> For instance, here a RSS feed parser (<code>sonata.block.service.rss</code>):"} } 
      - { position: right, type: sonata.block.service.rss, settings: { title: Sonata Project's Feeds, url: http://sonata-project.org/blog/archive.rss }} 

    # set to true to persist filter settings per admin module in the user's session 

fos_user: 
    db_driver:  mongodb # can be orm or odm 
    firewall_name: main 
    user_class:  Application\Sonata\UserBundle\Document\User 

    group: 
     group_class: Application\Sonata\UserBundle\Document\Group 

security.yml

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 

    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

    role_hierarchy: 
     ROLE_ADMIN:  [ROLE_USER, ROLE_SONATA_ADMIN] 
     ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 
     SONATA: 
      - ROLE_SONATA_PAGE_ADMIN_PAGE_EDIT # if you are using acl then this line must be commented 

    providers: 
     fos_userbundle: 
      id: fos_user.user_manager 

    firewalls: 
     # -> custom firewall for the admin area of the URL 
     admin: 
      switch_user:  true 
      context:   user 
      pattern:   /admin(.*) 
      form_login: 
       provider:  fos_userbundle 
       login_path:  /admin/login 
       use_forward: false 
       check_path:  /admin/login_check 
       failure_path: null 
       use_referer: true 
      logout: 
       path:   /admin/logout 
       target:   /admin/login 

      anonymous: true 
     # -> end custom configuration 

     # defaut login area for standard users 
     main: 
      switch_user:  true 
      context:   user 
      pattern:   .* 
      form_login: 
       provider:  fos_userbundle 
       login_path:  /login 
       use_forward: false 
       check_path:  /login_check 
       failure_path: null 
      logout:    true 
      anonymous:   true 

    access_control: 
     # URL of FOSUserBundle which need to be available to anonymous users 
     - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 

     # -> custom access control for the admin area of the URL 
     - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/login-check$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     # -> end 

     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 

     # Secured part of the site 
     # This config requires being logged for the whole site and having the admin role for the admin part. 
     # Change these rules to adapt them to your needs 
     - { path: ^/admin, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] } 
     - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY } 

सब के बाद मैं चलाएँ:

php app/console fos:user:create --super-admin 

काम मुझे सफलतापूर्वक बनाकर उपयोगकर्ता बताता है। फिर मैं अपने मोंगोडब की जांच करता हूं और केवल 3 फ़ील्ड के साथ एक रिकॉर्ड है।

यहाँ आउटपुट है:

> db.fos_user_user.findOne(); 
{ 
    "_id" : 1, 
    "createdAt" : ISODate("2013-05-25T19:43:52Z"), 
    "updatedAt" : ISODate("2013-05-25T19:43:52Z"), 
    "gender" : "u" 
} 

जैसा कि आप देख कोई उपयोगकर्ता नाम या पासवर्ड या किसी अन्य क्षेत्र है जो सोनाटा के या FOS 'दस्तावेज़ फ़ाइलों में बताया है। मैंने SonataDoctrineORMAdminBundle को यह देखने के लिए स्थापित किया कि क्या SonataAdminBundle के साथ कोई समस्या है लेकिन यह mysql के साथ एक आकर्षण की तरह काम करता है।

मुझे इतना पागल हो रहा है। कृपया मुझे बताएं, mongoDB के साथ sonataAdminBundle को स्थापित करने का सही तरीका क्या है?

आपकी रुचि के लिए धन्यवाद।

+0

आपकी कॉन्फ़िगरेशन ठीक दिखती है, क्या आपने '' 'सार्वजनिक फ़ंक्शन __construct() {parent :: __ निर्माण() को जोड़ने का प्रयास किया है; } '' 'आपकी उपयोगकर्ता कक्षा में? –

+0

@ पियर-ल्यूकेंड्रेउ हां __construct() विधि पहले से ही जोड़ दी गई है लेकिन कुछ भी नहीं बदला है। – user1150508

+0

@ user1150508 क्या आपने कभी इसे हल किया है? – codecowboy

उत्तर

1

लगता है कि विरासत मानचित्रण सही काम नहीं कर रहा है, मैंने निर्देशों का पालन किया लेकिन यह एक ही समस्या का कारण बन गया। मैं इसे FOS \ UserBundle द्वारा प्रदान की

# Application\Sonata\UserBundle\Document\User.php 

namespace Application\Sonata\UserBundle\Document; 

//use Sonata\UserBundle\Document\BaseUser as BaseUser; 
use FOS\UserBundle\Document\User as BaseUser; 
+0

हां, जैसा कि आप कहते हैं, मैंने FOS \ UserBundle \ Document \ User का उपयोग किया है, इसके बाद bu, सोनाटा व्यवस्थापक का उपयोग करते समय कुछ त्रुटियां हुई हैं जैसे कि 'कोई उपयोगकर्ता नाम फ़ील्ड नहीं है'। विरासत मैपिंग के बारे में एक बग है। मैंने बहुत सारी खोज की है, और कोड को दोबारा करने की कोशिश की, अंततः जादू समाधान नहीं मिला। और मुझे एक जादू समाधान की जरूरत है। – user1150508

+0

मैं मोंगो और सोनाटामीडियाबंडल के साथ अन्य समस्याओं में भाग गया और MySQL का उपयोग करने का फैसला किया। मोंगो और सोनाटा अभी भी अपूर्ण हैं .. –

0

मैं एक ही बिंदु पर stucked हूँ वर्ग के लिए BaseUser के संदर्भ में बदलकर तय कर ली।

मैंने अपने संगठन के लिए एक अलग नाम के साथ user.php बनाया है।

अंतर यह है कि मैं direcly MongoDB एनोटेशन अब उपयोगकर्ता बनाया जाना और प्रमाणीकरण काम करता है, लेकिन उपयोगकर्ता प्रबंधन SonataAdminBundle में काम करता है डाल

namespace myProject\BackEndBundle\Document; 

use FOS\UserBundle\Document\User as BaseUser; 
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 

/** 
* @MongoDB\Document 
*/ 
class BackEndUser extends BaseUser { 
    /** 
    * @MongoDB\Id 
    */ 
    protected $id; 

    /** 
    * Get id 
    * 
    * @return id $id 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    public function __construct() 
    { 
     parent::__construct(); 
     // your own logic 
    } 
} 

नहीं है था।

1

मैं भी इस के साथ मुद्दों कर रहा था, उन सिर्फ एक आईडी, लिंग के साथ बनाया गया:

# app/config/config.yml 
doctrine_mongodb: 
    connections: 
     default: 
      server: mongodb://localhost:27017 
      options: {} 
    default_database: test 
    document_managers: 
     default: 
      mappings: 
       ApplicationSonataUserBundle: ~ 
       SonataUserBundle: ~ 
       FOSUserBundle: ~ 

: 'यू', createdAt, आदि और इस के साथ, मैं यह काम करने के लिए कर रहा था मुझे आशा है कि किसी को यह उपयोगी लगेगा।

+0

क्या आप अपनी पूर्ण कार्य विन्यास फाइल पोस्ट कर सकते हैं? – codecowboy

संबंधित मुद्दे