LineLone
LineLone

Reputation: 111

symfony router library not find controller

I have This folder structure for my mvc project:

application
---admin
--------controller
--------model
--------view
--------language
---front
--------controller
------------------BlogController.php
--------model
--------view
--------language
core
public

I work With symfony router library and route my url like this:

use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;

$routes = new RouteCollection();
$routes->add('blog_list', new Route('/blog', array(
    '_controller' => [application\front\controller\BlogController::class, 'index']
)));

return $routes;

BlogController.php is:

namespace application\front\controller;

class BlogController extends Controller
{
    /**
     * Construct this object by extending the basic Controller class
     */
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
       echo 'fine';
    }
}

But In Action I can't see Any output. I think syfony can find my controller. Can I fix this problem ?!

Upvotes: 1

Views: 128

Answers (1)

ejuhjav
ejuhjav

Reputation: 2710

You didn't define which symfony version you are using. But checking from similar example on https://symfony.com/doc/current/routing/custom_route_loader.html for latest one (4.1), it looks like the controller value should be a string instead of an array (I haven't needed to use this kind of 'manual' route definition myself so I don't really know whether the constructor supports several different ways of defining the controller value - meaning that this is more of an educated guess what your issue could be :)).

$routes->add('blog_list', new Route('/blog', array(
    '_controller' => 'application\front\controller\BlogController::index'
)));

Upvotes: 1

Related Questions