Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Class estoque\Http\Controllers\ProdutoRequest does not exist

Quando vou adicionar um produto em branco surge o erro: ReflectionException in RouteSignatureParameters.php line 25: Class estoque\Http\Requests\ProdutoRequest does not exist

Segue o código abaixo: ProdutoRequest.php

<?php

namespace estoque\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ProdutoRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'nome' => 'required|min:3',
            'descricao' => 'required|max:255'
            'valor' => 'required|numeric',
            'quantidade' => 'required|numeric',
            'tamanho' => 'required|max:100'
        ];
    }
}

ProdutoController.php

<?php namespace estoque\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Request;
use Validator;
use estoque\Produto;
use estoque\Http\Requests\ProdutoRequest;


class ProdutoController extends Controller {

    public function lista() {
        $produtos = Produto::all();
        return view('produto.Listagem')->with('produtos', $produtos);
    }

    public function mostra($id) {
        $produto = Produto::find($id);
        if(empty($produto)) {
            return "Esse produto não existe";
        }
        return view('produto.Detalhes')->with('produto', $produto);
    }

    public function remove($id) {
        $produto = Produto::find($id);
        $produto->delete();
        return redirect()->action('ProdutoController@lista');
    }

    public function novo() {
        return view('produto.Formulario');
    }

    public function adiciona(ProdutoRequest $request) {
        Produto::create($request->all());
        return redirect()->action('ProdutoController@lista')->withInput(Request::only('nome'));
    }
}
8 respostas

Victor, boa noite!

Por coincidência eu acabei de fazer essa aula e esses exercícios e correu tudo bem.

O Mais estranho é que suas classes aparentam estar corretas. Parecem estar iguais às minhas.

A sua classe ProdutoRequest está no lugar certo e o nome do arquivo .php está correto? namespace estoque\http\Requests\ProdutoRequest >> pasta app\Http\Requests\ProdutoRequest.php

Bom dia Victor,

não sou foda no laravel, mas dê uma olhada nessa linha

return redirect()->action('ProdutoController@lista')->withInput(Request::only('nome'));

no inicio da sua função 'adiciona' você colocou como parametro (ProdutoRequest $request), e no return você utilizou.

Request::only('nome')

sendo que você 'sobrescreveu' o Request com seu ProdutoRequest.

tenta utilizar assim

eturn redirect()->action('ProdutoController@lista')->withInput();

Ou

eturn redirect()->action('ProdutoController@lista')->withInput($request::only('nome'));

Bom dia Juliano, conferi o diretório e está tudo ok, inclusive o nome da classe.

Bom dia Dionísio, antes já havia feito essa alteração no withInput para utilizar o Request que "sobrescrevi" e continua dando esse erro dizendo que a classe não existe...

Faz o seguinte, coloca uma \ antes do Request. pra ficar assim:

return redirect()->action('ProdutoController@lista')->withInput(\Request::only('nome'));

você tentou sem o Request::only('nome') dentro do with() ?

Dionísio, também já tentei sem o Request dentro do withInput() e também não está funcionando :(

solução!

Amigos, não sei o que aconteceu mas acabei o ProdutoRequest e tentei novamente e está funcionando... Obrigado pela ajuda de todos, tenham um excelente dia.

Opa... mistérios que fazem parte da profissão. Podes marcar como solucionado? Obrigado!

o caminho certo é assim amigo App\Http\Requests\ProdutoRequest