Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
30
respostas

Dúvida no Ex. 1 da Aula 2 - MVC e conexão com banco de dados

Whoops, looks like something went wrong.

1/1 FatalErrorException in ProdutoController.php line 12: Class 'app\Http\Controllers\Controller' not found

sendo que existe o controller na pasta.

Alguém poderia mim ajudar?

30 respostas
<?php

namespace app\Http\Controllers;


class ProdutoController extends Controller {

    public function lista(){
        return '<h1>Listagem de produtos com Laravel</h1>';
    }
}

quando coloco a url: http://localhost:8000/produtos

aparece a msg abaixo:

Whoops, looks like something went wrong. 1/1 FatalErrorException in ProdutoController.php line 12: Class 'app\Http\Controllers\Controller' not found

Oi Francimarco

Sua classe ProdutoController está em app\Http\Controllers, e na mensagem de FatalErrorException ele está procurando em app\Http\Controllers\Controller, tem um controller a mais ai, pode colar seu routes.php ?

Oi Francimarco, Em vez de 'app\Http\Controllers\Controller' , chama assim namespace App\Http\Controllers;

Estou com os mesmos problemas. Se alguém puder me ajudar, agradeço.

Oi pessoal

reparem que o namespace é o caminho ate o arquivo.

app\Http\Controllers\Controller

a sua pasta chama app ou App? ou nenhum dos dois?

no meu caso, que mudei o namespace, a pasta chama estoque, e não app.

então seria:

estoque\Http\Controllers\Controller

como está o de vocês?

Se não conseguirem resolver, podem mandar um print das pastas do projeto?

Estava tendo o mesmo problema, meu código é o seguinte?

```<?php namespace App\Http\Controllers;

class ProdutoController extends Controller {

public function lista(){ return '

Listagem de ProdutosABC

'; } }```

Notei que no meu, o namespace quando escrevia app com 'letra A' minúsculo dava o problema.

(assim Ex.: namespace app\Http\Controllers;).

E quando passei a usar a 'letra A' maiúscula dava certo. (assim Ex.: namespace App\Http\Controllers;)

Vejam se ajuda.

O Meu está dando o mesmo ERRO, e não consegui resolver, alguém pode ajudar!

ProdutoController.php <?php namespace estoque\app\Http\Controllers; class ProdutoController extends Controller {

public function lista() { return "

Meu primeiro projeto usando LARAVEL!

"; } }

routes.php <?php Route::get('/produtos', 'ProdutoController@lista');

ERRO:

Whoops, looks like something went wrong.

1/1 FatalErrorException in ProdutoController.php line 4: Class 'estoque\app\Http\Controllers\Controller' not found

Alguem pode ajudar aee? rsrsrs

Oi Jefferson

Primeiro precisamos saber onde fica a sua pasta controller. Navegue pelo seu terminal/prompt até a pasta de controllers do projeto e faça o seguinte comando :

pwd se for linux

ou

echo %cd% se for windows prompt

E depois nos informe o seu resultado por favor.

c:\xampp\htdocs\estoque\app\Http\Controllers

Realizei o comando echo %cd% me retornou :

c:\xampp\htdocs\estoque\app\Http\Controllers

Então o seu arquivo é para ficar assim :

<?php

namespace estoque\app\Http\Controllers


class ProdutoController extends Controller {

//resto do código

Faça isso, salve e faça um teste por favor.

Está exatamente assim, olha: <?php namespace estoque\app\Http\Controllers;

class ProdutoController extends Controller {

public function lista() { return "teste"; }

}

Da esta mensagem:

FatalErrorException in ProdutoController.php line 6: Class 'estoque\app\Http\Controllers\Controller' not found

Opa Jefferson,

Tem que tirar o app do namespace, vai ficar assim :

namespace estoque\Http\Controllers;

falha minha! Pode um teste novamente ?

abraço

Testei assim: <?php

namespace estoque\Http\Controllers;

class ProdutoController extends Controller {

public function lista() { return "teste"; }

}

Deu essa mensagem:

FatalErrorException in ProdutoController.php line 5: Class 'estoque\Http\Controllers\Controller' not found

Vai no seu prompt nessa pasta : c:\xampp\htdocs\estoque\app\Http\Controllers

faça o dir lá, e cola o resultado aqui por favor.

27/06/2016 15:01

. 27/06/2016 15:01 .. 22/06/2016 11:03 Auth 27/06/2016 16:07 455 Controller.php 27/06/2016 16:07 153 ProdutoController.php 2 arquivo(s) 608 bytes 3 pasta(s) 303.595.352.064 bytes disponíveis

Confirma que seu routes.php deve ter a rota desse controller:

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

Como você está testando ? Qual é a url que você está fazendo o teste ?

Meu routes: <?php Route::get('/produtos', 'ProdutoController@lista');


Estou executando essa url no navegador:

http://localhost/estoque/public/produtos

Parece que está tudo certo. muito estranho.

Tenta testar a url que é mostrada no curso :

http://localhost:8000/produtos

Aparece que não é possível acessar o site.

Muito estranho mesmo , será quem a vê com instalação ?

O pior é que na empresa e em casa está dando a mesma coisa.

solução!

Eu não tenho mais opção =[ , Consegue desinstalar tudo ai ? Ai você seguiria o passo-a-passo que temos:

https://gist.github.com/Turini/4949f23350ae2297c933

Blza , vou tentar fazer e dou o feedback. Obrigado Caio.

Caio , desinstalei e instalei novamente. E deixei meu namespace assim: namespace App\Http\Controllers;, e funcionou. Obrigado

Estou com um novo problema, se alguém puder ajudar eu agradeço.

Esta dando essa mensagem quando tento fazer um select no banco:

/1 RuntimeException in C:\xampp\htdocs\produtos\vendor\laravel\framework\src\Illuminate\Encryption\EncryptionServiceProvider.php line 45: No supported encrypter found. The cipher and / or key length are invalid.

Meu database.php está assim:

'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'estoque_laravel'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ],

Jefferson Pode abrir um nova dúvida ? Assim deixamos esse tópico só sobre o problema do namespace.

abraços

Ok. Já resolvi o meu outro problema, Obrigado

tive o mesmo problema utilizando a versão 5.3, fiz o que o Haylson Martins disse e resolveu, meu 'app' realmente está em minúsculo mas se colocar 'App/~' em maiúsculo resolveu o problema