2016-06-22 8 views
5

में काम करता है मैं सिम्फनी के लिए नया हूं लेकिन PHP नहीं। मैं सिर्फ यह नहीं समझ सकता कि मुझे कस्टम बंडल से काम करने के लिए होमपेज रूट क्यों नहीं मिल रहा है, लेकिन ऐसा लगता है कि यह कंसोल आउटपुट से काम कर रहा है। जब मैं अपने वेब ब्राउज़र में मार्ग निष्पादित करता हूं तो यह हमेशा ऐपबंडल से / मार्ग को फिर से चालू कर देगा, यानी डिफ़ॉल्ट सिम्फनी स्वागत पृष्ठ, भले ही ऐपबंडल को registerBundles() फ़ंक्शन को AppKernal.php में हटा दिया गया हो।कस्टम बंडल के माध्यम से सिम्फनी रूटिंग केवल कंसोल मोड

[2016-06-22 19:07:57] request.INFO: Matched route "homepage". {"route_parameters":{"_controller":"AppBundle\\Controller\\DefaultController::indexAction","_route":"homepage"},"request_uri":"http://bvd-v3.dev/"} [] 
[2016-06-22 19:07:57] security.INFO: Populated the TokenStorage with an anonymous Token. [] [] 
[2016-06-22 19:07:57] request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "Class "AppBundle\Controller\DefaultController" does not exist." at /Users/apple/projects/mentel/bvd-v3/var/cache/prod/classes.php line 2498 {"exception":"[object] (InvalidArgumentException(code: 0): Class \"AppBundle\\Controller\\DefaultController\" does not exist. at /Users/apple/projects/mentel/bvd-v3/var/cache/prod/classes.php:2498)"} [] 

फिर भी, अगर मैं php bin/console router:match /

फोन उत्पादन होता है:: मैं इस बात की पुष्टि कर सकते हैं, क्योंकि यदि/src मैं निम्नलिखित त्रुटि लॉग मिल जाएगा से AppBundle निर्देशिका हटाना

+--------------+---------------------------------------------------------+ 
| Property  | Value             | 
+--------------+---------------------------------------------------------+ 
| Route Name | homepage            | 
| Path   |/              | 
| Path Regex | #^/$#s             | 
| Host   | ANY              | 
| Host Regex |               | 
| Scheme  | ANY              | 
| Method  | ANY              | 
| Requirements | NO CUSTOM            | 
| Class  | Symfony\Component\Routing\Route       | 
| Defaults  | _controller: MentelBundle:Index:index     | 
| Options  | compiler_class: Symfony\Component\Routing\RouteCompiler | 
+--------------+---------------------------------------------------------+ 

हैं मैं फोन php bin/console debug:router

उत्पादन होता है:

-------------------------- -------- -------- ------ ----------------------------------- 
    Name      Method Scheme Host Path        
-------------------------- -------- -------- ------ ----------------------------------- 
    _wdt      ANY  ANY  ANY /_wdt/{token}      
    _profiler_home    ANY  ANY  ANY /_profiler/       
    _profiler_search   ANY  ANY  ANY /_profiler/search     
    _profiler_search_bar  ANY  ANY  ANY /_profiler/search_bar    
    _profiler_info    ANY  ANY  ANY /_profiler/info/{about}    
    _profiler_phpinfo   ANY  ANY  ANY /_profiler/phpinfo     
    _profiler_search_results ANY  ANY  ANY /_profiler/{token}/search/results 
    _profiler     ANY  ANY  ANY /_profiler/{token}     
    _profiler_router   ANY  ANY  ANY /_profiler/{token}/router   
    _profiler_exception  ANY  ANY  ANY /_profiler/{token}/exception  
    _profiler_exception_css ANY  ANY  ANY /_profiler/{token}/exception.css 
    _twig_error_test   ANY  ANY  ANY /_error/{code}.{_format}   
    homepage     ANY  ANY  ANY /         

routing.yml की सामग्री: /app/AppKernal.php में

_wdt: 
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml" 
    prefix: /_wdt 

_profiler: 
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml" 
    prefix: /_profiler 

_errors: 
    resource: "@TwigBundle/Resources/config/routing/errors.xml" 
    prefix: /_error 

_main: 
    resource: routing.yml 

registerBundles() की सामग्री::

mentel: 
    resource: "@MentelBundle/Controller/" 
    type:  annotation 

routing_dev.yml की सामग्री

public function registerBundles() 
{ 
    $bundles = [ 
     new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), 
     new Symfony\Bundle\SecurityBundle\SecurityBundle(), 
     new Symfony\Bundle\TwigBundle\TwigBundle(), 
     new Symfony\Bundle\MonologBundle\MonologBundle(), 
     new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), 
     new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
     new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
     new BVD\MentelBundle\MentelBundle(), 
    ]; 

    if (in_array($this->getEnvironment(), ['dev', 'test'], true)) { 
     $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); 
     $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 
     $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); 
     $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); 
    } 

    return $bundles; 
} 

नियंत्रक की सामग्री:

<?php 

namespace BVD\MentelBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 

class IndexController extends Controller 
{ 
    /** 
    * @Route("/", name="homepage") 
    */ 
    public function indexAction() 
    { 
     die('?'); 
     return $this->render('@mentel/pages/home.html.twig', array(
      // ... 
     )); 
    } 

} 

मेरा प्रश्न पढ़ने के लिए धन्यवाद, वास्तव में आप जो भी मदद कर सकते हैं उसकी सराहना करेंगे।

+0

इसलिए मुझे लगता है कि वहाँ है और गलत समझा। @Route ("/", name = "homepage") का मतलब है hostname.de/ मार्ग है अगर आप hostname.de/ मुखपृष्ठ @ रूट ("/ मुखपृष्ठ", name = "मुखपृष्ठ") चाहते हैं तो आपको – fucethebads

+0

का उपयोग करना चाहिए I टी चाहते हैं कि '/ होमपेज' मैं डोमेन से सेवा प्रदान करना चाहता हूं, यानी 'http: // example.com' जो'/'होगा, लेकिन आप जो भी कहते हैं, इससे कोई फर्क नहीं पड़ता, क्योंकि '/ something_else' को रूट बदलना 'सिर्फ सिम्फनी 404 दे देंगे। चूंकि उसके लिए कोई ऐपबंडल रूट नहीं है। – DrewT

+2

क्या आपने अपना कैश साफ़ करने का प्रयास किया है ('bin/console cache: clear')? – Oldskool

उत्तर

0

रन:

php bin/console cache:clear --env=prod 
संबंधित मुद्दे