Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot declare class Controller, because the name is already in use

I recently migrated a laravel 4.2 project to 5.0. So far I have completed all the necessary steps but I keep getting an error.

Cannot declare class Controller, because the name is already in use

My Controller is changed as provided by laravel in the upgrade guide.

<?php

use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;

abstract class Controller extends BaseController {

    use DispatchesCommands, ValidatesRequests;

}

Also I have added it to the classmap directive of my composer.json.

"autoload": {
    "classmap": [
        "database",
        "app/Http/Controllers"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},

I couldn't find any solution so far so if you guys know what to do it would help me out a lot :) thanks in advance!

like image 702
Reshad Avatar asked Nov 03 '16 16:11

Reshad


2 Answers

Remove the "app/Http/Controllers" from your classmap.

Add namespace App\Http\Controllers; above your use blocks.

Then run composer dump-auto

like image 145
Eric Tucker Avatar answered Sep 24 '22 06:09

Eric Tucker


I'm pretty sure you have to add namespaces.

Namespacing

By default, Laravel 4 applications did not utilize namespacing within your application code. So, for example, all Eloquent models and controllers simply lived in the "global" namespace. For a quicker migration, you can simply leave these classes in the global namespace in Laravel 5 as well.

like image 45
Gordon Freeman Avatar answered Sep 23 '22 06:09

Gordon Freeman