0

動的ルーターを機能させようとしています。しかし、私にはそう見えますが、そうではありません。「/web/app_dev.php/de/test」を呼び出すと、

Stack Trace: [1] Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /de/test"
    at n/a
        in /var/www/myProject/app/cache/dev/classes.php line 1882

    at Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(object(GetResponseEvent))
        in  line 

    at call_user_func(array(object(RouterListener), 'onKernelRequest'), object(GetResponseEvent))
        in /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php line 450

    at Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->Symfony\Component\HttpKernel\Debug\{closure}(object(GetResponseEvent))
        in  line 

    at call_user_func(object(Closure), object(GetResponseEvent))
        in /var/www/myProject/app/cache/dev/classes.php line 1666

    at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure)), 'kernel.request', object(GetResponseEvent))
        in /var/www/myProject/app/cache/dev/classes.php line 1599

    at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
        in /var/www/myProject/app/cache/dev/classes.php line 1763

    at Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
        in /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php line 139

    at Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
        in /var/www/myProject/app/bootstrap.php.cache line 2804

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
        in /var/www/myProject/app/bootstrap.php.cache line 2789

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
        in /var/www/myProject/app/bootstrap.php.cache line 2918

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
        in /var/www/myProject/app/bootstrap.php.cache line 2220

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
        in /var/www/myProject/web/app_dev.php line 29

[2] Symfony\Component\Routing\Exception\ResourceNotFoundException: None of the routers in the chain matched this request GET /myProject/web/app_dev.php/de/test HTTP/1.1 Accept:          text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Cache-Control:   no-cache Connection:      keep-alive Cookie:          PHPSESSID=6a5ds9lfehu405ai79o7tm1h55; lunetics_locale=de Host:         localhost Pragma:          no-cache User-Agent:      Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0 X-Php-Ob-Level:  1


    at n/a
        in /var/www/myProject/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainRouter.php line 192

    at Symfony\Cmf\Component\Routing\ChainRouter->doMatch('/de/test', object(Request))
        in /var/www/myProject/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/ChainRouter.php line 147

    at Symfony\Cmf\Component\Routing\ChainRouter->matchRequest(object(Request))
        in /var/www/myProject/app/cache/dev/classes.php line 1869

    at Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(object(GetResponseEvent))
        in  line 

    at call_user_func(array(object(RouterListener), 'onKernelRequest'), object(GetResponseEvent))
        in /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php line 450

    at Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->Symfony\Component\HttpKernel\Debug\{closure}(object(GetResponseEvent))
        in  line 

    at call_user_func(object(Closure), object(GetResponseEvent))
        in /var/www/myProject/app/cache/dev/classes.php line 1666

    at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure), object(Closure)), 'kernel.request', object(GetResponseEvent))
        in /var/www/myProject/app/cache/dev/classes.php line 1599

    at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
        in /var/www/myProject/app/cache/dev/classes.php line 1763

    at Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
        in /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php line 139

    at Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
        in /var/www/myProject/app/bootstrap.php.cache line 2804

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
        in /var/www/myProject/app/bootstrap.php.cache line 2789

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
        in /var/www/myProject/app/bootstrap.php.cache line 2918

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
        in /var/www/myProject/app/bootstrap.php.cache line 2220

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
        in /var/www/myProject/web/app_dev.php line 29

また、私の Symfony プロファイラーは、データベースにクエリが送信されていないことを教えてくれます。これが、動的ルーターがphpcr-nodesをチェックしなかったと私が推測する理由です。

これは私の設定ファイルの抜粋です:

# CMF Routing
cmf_routing:
    chain:
        routers_by_id:
            cmf_routing.dynamic_router: 200
            router.default: 100
    dynamic:
        controllers_by_class:
            Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\RedirectRoute: cmf_routing.redirect_controller:redirectAction
        persistence:
            phpcr:
                enabled: true
                use_sonata_admin: true

                content_basepath: /
                route_basepath: /
        locales:
            - de
            - en



cmf_core:
    persistence:
        phpcr:
            enabled: true
            basepath: /


cmf_block:
    persistence:
        phpcr:
            enabled: true
            manager_name: default
            use_sonata_admin: true
            content_basepath: /
    use_imagine: false

cmf_content:
    persistence:
        phpcr:
            content_basepath: /content

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        types:
            json: Sonata\Doctrine\Types\JsonType

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true


# PHPCR
doctrine_phpcr:
    session:
        backend:
            type: doctrinedbal
            #connection: default
        workspace: default
        username: admin
        password: admin
    odm:
        document_managers:
            default:
                auto_mapping: true
                session: default
                mappings:
                    CmfContentBundle: ~
                    CmfMenuBundle: ~
                    CmfRoutingBundle: ~
        auto_generate_proxy_classes: %kernel.debug%
        proxy_dir:            %kernel.cache_dir%/doctrine/PHPCRProxies
        proxy_namespace:      PHPCRProxies
        locales:
            de: [en]
            en: [de]

sonata_doctrine_phpcr_admin:
    document_tree_defaults: [locale]
    document_tree:
        Doctrine\ODM\PHPCR\Document\Generic:
            valid_children:
                - all
        Symfony\Cmf\Bundle\SimpleCmsBundle\Document\Page: ~
        Symfony\Cmf\Bundle\RoutingBundle\Document\Route:
            valid_children:
                - Symfony\Cmf\Bundle\RoutingBundle\Document\Route
                - Symfony\Cmf\Bundle\RoutingBundle\Document\RedirectRoute
        Symfony\Cmf\Bundle\RoutingBundle\Document\RedirectRoute:
            valid_children: []
        Symfony\Cmf\Bundle\MenuBundle\Document\MenuNode:
            valid_children:
                - Symfony\Cmf\Bundle\MenuBundle\Document\MenuNode
                - Symfony\Cmf\Bundle\MenuBundle\Document\MultilangMenuNode
        Symfony\Cmf\Bundle\ContentBundle\Doctrine\Phpcr\StaticContent:
            valid_children:
                - all
        Symfony\Cmf\Bundle\MenuBundle\Document\MultilangMenuNode:
            valid_children:
                - Symfony\Cmf\Bundle\MenuBundle\Document\MenuNode
                - Symfony\Cmf\Bundle\MenuBundle\Document\MultilangMenuNode

私は Sonata Admin を使用しており、バックエンド内で /de/test ルートを構成しています。これは、結果として得られたデータベース エントリです。

| id | path     | parent | local_name | namespace | workspace_name | identifier                           | type            | props                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | depth | sort_order |
| 21 | /de/test | /de    | test       |           | default        | 24ec587c-b6f0-4a3f-af23-e107b0a21a32 | nt:unstructured | <?xml version="1.0" encoding="UTF-8"?><sv:node xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:rep="internal"><sv:property sv:name="jcr:primaryType" sv:type="Name" sv:multi-valued="0"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multi-valued="1"><sv:value>phpcr:managed</sv:value><sv:value>mix:referenceable</sv:value></sv:property><sv:property sv:name="phpcr:class" sv:type="String" sv:multi-valued="0"><sv:value>Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\Route</sv:value></sv:property><sv:property sv:name="phpcr:classparents" sv:type="String" sv:multi-valued="1"><sv:value>Symfony\Component\Routing\Route</sv:value><sv:value>Symfony\Cmf\Bundle\RoutingBundle\Model\Route</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String" sv:multi-valued="0"><sv:value>24ec587c-b6f0-4a3f-af23-e107b0a21a32</sv:value></sv:property><sv:property sv:name="host" sv:type="String" sv:multi-valued="0"><sv:value></sv:value></sv:property><sv:property sv:name="defaultsKeys" sv:type="String" sv:multi-valued="1"><sv:value>_controller</sv:value></sv:property><sv:property sv:name="defaults" sv:type="String" sv:multi-valued="1"><sv:value>ASVDefaultBundle:Default:index</sv:value></sv:property><sv:property sv:name="requirements" sv:type="String" sv:multi-valued="1"/><sv:property sv:name="options" sv:type="String" sv:multi-valued="1"/><sv:property sv:name="addFormatPattern" sv:type="Boolean" sv:multi-valued="0"><sv:value>0</sv:value></sv:property><sv:property sv:name="addTrailingSlash" sv:type="Boolean" sv:multi-valued="0"><sv:value>0</sv:value></sv:property></sv:node> |     2 |          2 |

これらは私の作曲家の要件です:

"require" : {
        "doctrine/doctrine-fixtures-bundle" : "dev-master",
        "jackalope/jackalope-doctrine-dbal" : "dev-master",
        "friendsofsymfony/user-bundle" : "*",
        "symfony/swiftmailer-bundle" : "2.3.*",
        "sonata-project/cache-bundle" : "dev-master",
        "doctrine/orm" : ">=2.2.3,<2.4-dev",
        "sonata-project/user-bundle" : "dev-master",
        "lunetics/locale-bundle" : "dev-master",
        "twig/extensions" : "1.0.*",
        "php" : ">=5.3.3",
        "symfony-cmf/symfony-cmf" : "dev-master",
        "symfony/monolog-bundle" : "2.3.*",
        "sensio/distribution-bundle" : "2.3.*",
        "symfony/symfony" : "2.3.*",
        "doctrine/phpcr-bundle" : "1.0.0-beta4",
        "sonata-project/doctrine-orm-admin-bundle" : "2.*",
        "sonata-project/easy-extends-bundle" : "dev-master",
        "doctrine/phpcr-odm" : "1.0.0-beta5",
        "symfony/assetic-bundle" : "2.3.*",
        "incenteev/composer-parameter-handler" : "~2.0",
        "sonata-project/doctrine-phpcr-admin-bundle" : "dev-master",
        "sonata-project/intl-bundle" : "dev-master",
        "sensio/generator-bundle" : "2.3.*",
        "sensio/framework-extra-bundle" : "2.3.*",
        "doctrine/doctrine-bundle" : "1.2.*"
    }

問題が何であるかを知っている人はいますか?

4

3 に答える 3

0

申し訳ありませんが、元の質問に対する回答ではありません

一般的に動的ルーターを有効にするための構成が欠落しているようです。

cmf_routing:
    dynamic:
        enabled: true

http://symfony.com/doc/master/cmf/bundles/routing/dynamic.htmlのドキュメントも参照してください。

構成が指定されている場合、バンドルが動的ルーターをアクティブ化する必要があることに同意します-それを改善するためにプルリクエストを行いたい場合は、大歓迎です。(これはすでにそうです)

于 2013-11-03T10:28:49.477 に答える
0

私はそれを考え出した。ここで 2 つの問題がありました。

最初に、cmf_routing.routes_basepath を構成して、ノードの正しいプレフィックスを取得する必要がありました。強制的にルートノードにしようとしました/。しかし、私がこれを行ったとき、データベースのルックアップさえありませんでした。この誤動作は、私が構成した routes_basepath が原因であることが判明しました。/ページロード時にルックアップを引き起こした以外の値。

そのため、新しいノード (ドキュメントで提案されている「/routes」など) を作成し、cmf_routing.routes_basepath をノード名に設定する必要がありました。

今では正常に動作します (ルートが routes ノードの下に作成されている限り)。

于 2013-11-14T10:52:31.793 に答える