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

Dúvida no Ex. 2 da Aula 7 - Os diferentes tipos de resposta

Ao adicionar o :

@if(old('nome'))
  <div class="alert alert-success">
    <strong>Sucesso!</strong> 
        O produto {{ old('nome') }} foi adicionado.
  </div>
@endif

Dentro do arquivo de listagem e configurar o controller:

public function adiciona() {
        $nome = Request::input('nome');
        $quantidade = Request::input('quantidade');
        $valor = Request::input('valor');
        $descricao = Request::input('descricao');

        DB::insert('insert into produtos (nome, quantidade, valor, descricao) values(?,?,?,?)', array($nome, $quantidade, $valor, $descricao));

        return redirect('/produtos')->withInput();
    }

Recebo o seguinte erro: Session store not set on request.

Ao analisar as dúvidas dos colegas, todos se relacionam com este mesmo problema. Onde sugerem ser problema de versão do Laravel.

Seria bacana conseguirmos alterar o código para que funcione no Laravel 5.2

Obrigado

3 respostas

Oi Vitor, tudo bem? Acontece que boa parte do código é compátivel e é um pouco complicado acompanhar cada atualização do framework e atualizar o curso. Mas fique tranquilo, seu problema tem solução fácil.

Lembra que na primeira aula o Instrutor apagou umas linhas lá no routes.php? Pronto, coloque-as de volta e inclua suas rotas dentro daquela seção. Veja:

Route::group(['middleware' => 'web'], function () {
    Route::auth();
    // outras rotas aqui

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

Porque acontece esse erro? Porque o metodo: withInput(), da request inclue o valores das váriaveis em sessão, rotas soltas no arquivo de rotas até onde notei, não estão dentro do escopo de controle de sessão do framework, por isso esse Route Group existe, e faz até sentido certo? Nem todas as rotas precisam de controle de sessão, autorização e outros recursos oferecidos pelo framework.

Incluir as rotas nesse Route Group resolveu meu problema, mas tive outros erros. Caso tenha outros erros, abra um tópico no forúm!

Espero ter ajudado! Bons estudos.

solução!

Boa tarde cara, Eu estava tendo este mesmo problema.

procurei em alguns lugares e a solução para mim foi:

no arquivo de rotas. colocar

Route::group(['middleware' => ['web']], function () {

// Coloque suas rotas abaixo. As minhas estão de exemplo

//Route::get('/produtos','ProdutoController@lista' ); //Route::get('/produtos/mostrar/{id}','ProdutoController@mostra' ); //Route::get('/produtos/novo','ProdutoController@novo' ); //Route::post('/produtos/adiciona','ProdutoController@adiciona' );

});

e após isso vai gerar um novo erro. sobre a chave(key) e cipher

acesse pelo prompt de comandos a pasta onde você tem sua aplicação. (Exemplo cd C:\wamp\www\ seu_projeto)

E rode o comando php artisan key: generate

Talvez tu tenha que desligar o servidor e ligar de novo, mas comigo foi assim

espero te ajudar. E de uma lida na resposta acima que ele da uma boa explicada.

Rodrigo, fiz o procedimento que ensinou no seu post. Funcionou perfeitamente! Muito obrigado.

Wanderson, muito obrigado pela explicação!

Abraços