Sam Bath
Sam Bath

Reputation: 113

Symfony 4.4 - Could not resolve argument

I work on mac now.

At office, I get a Windows and I tried to clone my project and did some troubleshooting (error of php version like downgrading).

Now, I can access some pages I created (basically json files as Angular would display them.

It seems weird but on Windows work well. But on Mac, it doesn't work (same files, same project,...).

But, one renders me this error message:

Could not resolve argument $roomRepository of "App\Controller\ApiRoomController::index()", maybe you forgot to register the controller as a service or missed tagging it with the "controller.service_arguments"

As someone asked on Could not resolve argument $encoder of "xx", UserPasswordEncoderInterface, Symfony 4.*, I checked my services.yaml and its seems ok:

# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.

# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:

services:
    # default configuration for services in *this* file
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.

    # makes classes in src/ available to be used as services
    # this creates a service per class whose id is the fully-qualified class name
    App\:
        resource: '../src/'
        exclude:
            - '../src/DependencyInjection/'
            - '../src/Entity/'
            - '../src/Kernel.php'
            - '../src/Tests/'

    # controllers are imported separately to make sure services can be injected
    # as action arguments even if you don't extend any base controller class
    App\Controller\:
        resource: '../src/Controller/'
        tags: ['controller.service_arguments']

    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones

Thanks for any help :)

Upvotes: 2

Views: 2683

Answers (1)

Jorj
Jorj

Reputation: 2701

I got the same error and struggled to find the reason. You can verify if the controller is properly defined as a service with:

bin/console debug:container

If you find it in the list you can get more info with:

bin/console debug:container App\Controller\ApiRoomController

In my case the issue was in the bundle's routing file (yaml) where my method was written as Index instead of index (note uppercase I)

someroute:
    path: /index
    controller: App\Controller\ApiRoomController:Index

I know it is an old question but maybe it will help someone

Upvotes: 1

Related Questions