symfony 3.4.17 Контроллер не найден - PullRequest
0 голосов
/ 16 октября 2018

Я начинаю с symfony 3.4.17 и пытаюсь его изучить.Я следую инструкциям: https://openclassrooms.com/fr/courses/3619856-developpez-votre-site-web-avec-le-framework-symfony/3621961-les-services-theorie-et-creation

Я создаю новый пакет и генерирую контроллер и представление, но когда я пытаюсь запустить свое приложение, я получаю сообщение об ошибке

Контроллер не найден:Сервис "OCCoreBundle" не существует.

Я проверяю все свои файлы и не вижу ошибок.Можете ли вы помочь мне найти его?

Большое спасибо за помощь и извините, если мой английский не очень хорош :)

Некоторые части моего кода (скажите, если вам нужны другие файлы)):

// app/Ressources/config/routing.yml
oc_platform:
    resource: "@OCPlatformBundle/Resources/config/routing.yml"
    prefix:   /platform

oc_core:
    resource: "@OCCoreBundle/Resources/config/routing.yml"
    prefix:   /

// app/AppKernel.php
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;

class AppKernel extends Kernel
{
    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 OC\PlateformBundle\OCPlateformBundle(),
            new OC\CoreBundle\OCCoreBundle()
        ];

        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 Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();

            if ('dev' === $this->getEnvironment()) {
                $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
                $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
            }
        }

        return $bundles;
    }



// src/OC/CoreBundle/Ressources/config/routing.yml
core_homepage:
    path:     /
    defaults: { _controller: OCCoreBundle:index }



// src/OC/CoreBundle/Controller/CoreController.php
<?php

namespace OC\CoreBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class CoreController extends Controller
{
  public function indexAction($page)
  {

  }
}

// src/OC/CoreBundle/OCCoreBundle.php
<?php

namespace OC\CoreBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class OCCoreBundle extends Bundle
{
}

1 Ответ

0 голосов
/ 16 октября 2018

Я нахожу свою ошибку, я просто забыл в своем маршруте сказать, что мне нужен контроллер Core.Поэтому в своем коде я изменяю yml маршрутизации Core следующим образом:

// src/OC/CoreBundle/Ressources/config/routing.yml
oc_core_homepage:
    path:      /
    defaults:
        _controller: OCCoreBundle:Core:index

Я также добавляю то же самое для моего CoreController:

// src/OC/CoreBundle/Controller/CoreController.php
<?php

namespace OC\CoreBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class CoreController extends Controller
{
  public function indexAction()
  {
   return $this->render('OCCoreBundle:Core:layout.html.twig');
  }
}

Спасибо вам, Anjana Silva, за попытку помочь мне ^^ Я поставлю свой пост в разрешенном :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...