10
respostas

"localhost:8000/home" não abre!

Esta dando esse erro quando tento acessar o endereço: Whoops, looks like something went wrong.

1/1 ReflectionException in Route.php line 280: Class \Bestmomo\Scafold\src\Http\Controllers\HomeController does not exist

Alguem poderia me ajudar por gentileza?

10 respostas

O namespace da classe HomeController é Bestmomo\Scafold\src\Http\Controllers mesmo? Confere isso e dá um retorno aqui.

Coloquei esse namespace, pois foi onde encontrei o arquivo "HomeController". Ele não esta no mesmo local mencionado na aula.

Por gentileza, peço orientação.

Obrigado.

<?php namespace Bestmomo\Scafold\src\Http\Controllers;

Route::get('/', 'ProdutoController@lista');

Route::get('/produtos', 'ProdutoController@lista');
Route::get('/produtos/mostra/{id}', 'ProdutoController@mostra')->where('id', '[0-9]+');
Route::get('/produtos/remove/{id}', 'ProdutoController@remove');
Route::get('/produtos/altera/{id}', 'ProdutoController@altera');
Route::get('/produtos/novo', 'ProdutoController@novo');
Route::post('/produtos/adiciona', 'ProdutoController@adiciona');
Route::get('/produtos/json', 'ProdutoController@listaJson');


Route::get('home','HomeController@index');

Route::controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController',
]);

Como está a parte autoload do seu arquivo composer.json? A partir de lá vou poder te dizer o namespace que você deve colocar.

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "bestmomo/scafold": "^1.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "estoque\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

Sua estrutura de pastas está assim, então?


- composer.json
- Bestmomo
    - Scafold
        - src
            - etc...

Se for, uma das soluções possíveis é:

Altera app/ no autoload do seu composer .json pra Bestmo/Scafold/src e muda o namespace pra estoque\Http\Controllers.

Depois disso, roda o comando composer dump-autoload.

Fala pra mim se foi.

Em qual arquivo devo colocar o namespace?

deu esse erro:

Fatal error: Uncaught exception 'ReflectionException' with message 'Class estoque\Http\Kernel does not exist' in /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php:734 Stack trace: #0 /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php(734): ReflectionClass->__construct('estoque\\Http\\Ke...') #1 /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php(629): Illuminate\Container\Container->build('estoque\\Http\\Ke...', Array) #2 /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(697): Illuminate\Container\Container->make('estoque\\Http\\Ke...', Array) #3 /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php(230): Illuminate\Foundation\Application->make('estoque\\Http\\Ke...', Array) #4 /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel in /Users/Flavio/Documents/Projetos/php/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 734

Pesquisei essa sua estrutura de pastas... Você está usando esse repositório?

https://github.com/bestmomo/scafold

Eu não conheço muito de Laravel mas ele não parece ter a estrutura criada pelo framework...

Já faz bastante tempo que a duvida foi postada, então respondo aqui para caso outra pessoa tenha a mesma duvida do amigo. Eu estava com o mesmo problema, então dei uma olhada na parte de autenticação da documentação do laravel e consegui resolver isso, basta você dar um comando para o artisan que ele ira construir toda esta parte para você. O comando é php artisan make:auth , esse procedimento está documentado aqui : https://laravel.com/docs/5.4/authentication, Ao fazer isso ele vai criar as views necessárias, além de já incluir no arquivo web.php a rota para autenticação e para a pasta home, e já vai criar os controllers referentes aos mesmo, o resto é bem parecido . Espero que isso ajude alguém =)

O meu deu o mesmo problema e tentei fazer colocando o comando: php artisan make:auth

Porém apresentou esse erro: Attribute [controllers] does not exist.

Alguém poderia ajudar? Obrigado

Boa tarde !!! Estou enfrentado o mesmo problema da home o comando: php artisan make:auth ja tinha que inicializado no começo do curso não no final ja com a criação do Home Controllerpor isso que o codigo esta com bug de tanta adaptações durante o curso...Olhei para ver se tem o projeto final pronto para adaptar como o meu nem isso tem....Gostaria do script pronto para eu corrigir esses bugs ?