Boa tarde, fui fazer o desafio de alterar o produto mas esta dando o erro: NotFoundHttpException
Segua abaixo os codigo:
routes.php
<?php
    Route::get('/', 'WelcomeController@index');
    Route::get('home', 'HomeController@index');
    Route::controllers([
        'auth' => 'Auth\AuthController',
        'password' => 'Auth\PasswordController',
    ]);
Route::get('/', function()
{
    return 'Primeira lógica com Laravel';
});
Route::get('/produtos', 'ProdutoController@lista');
Route::get('/produtos/mostra/{id}','ProdutoController@mostra')->where('id','[0-9]+');
Route::get('/produtos/novo', 'ProdutoController@novo');
Route::post('/produtos/adiciona', 'ProdutoController@adiciona');
Route::post('/produtos/salvaralteracao/{id}', 'ProdutoController@salvaralteracao')->where('id','[0-9]+');
Route::get('/produtos/altera/{id}', 'ProdutoController@altera')->where('id','[0-9]+');;
Route::get('/produtos/json', 'ProdutoController@listaJson');
Route::get('/produtos/remove/{id}', 'ProdutoController@remove');ProdutoController.php
<?php namespace estoque\Http\Controllers;
use Illuminate\Support\Facades\DB;
use estoque\Produto;
use Request;
class ProdutoController extends Controller {
    public function lista(){
        #$produtos = DB::select('select * from produtos');
        $produtos = Produto::all();
        return view('produto.listagem')->withProdutos($produtos);
    }
    public function  mostra($id){
        $produto = Produto::find($id);
        return view('produto.detalhe')->with('p', $produto);
    }
    public function  altera($id){
        $produto = Produto::find($id);
        return view('produto.formulario-altera')->with('p', $produto);
    }
    public function novo(){
        #$produto = array("id"=>"","descricao"=>"","nome" => "", "valor" => "", "quantidade" => "");
        $produto = Produto::find(0);
        return view('produto.formulario');
    }
    public function salvaralteracao($id){
        echo $id;
        $params = Request::all();
        $produto = Produto::find($id);
        $produto->update($params);
        return redirect()->action('ProdutoController@lista')->withInput(Request::only('nome'));
    }
    public function adiciona(){
        Produto::create(Request::all());
        return redirect()->action('ProdutoController@lista')->withInput(Request::only('nome'));
    }
    public function remove($id){
        $produto = Produto::find($id);
        $produto->delete();
        return redirect()
            ->action('ProdutoController@lista');
    }
}Produtos.php
<?php namespace estoque;
use Illuminate\Database\Eloquent\Model;
class Produto extends Model {
    protected $table = 'produtos';
    public $timestamps = false;
    protected $fillable = array('nome','descricao', 'valor', 'quantidade');
}formulario.blade.php
@extends('layout.principal')
@section('conteudo')
    <h1>Novo produto</h1>
    <form action="/produtos/altera" method="post">
        <input type="hidden"
               name="_token" value="{{{ csrf_token() }}}">
        <div class="form-group">
            <label>Nome</label>
            <input name="nome" class="form-control">
        </div>
        <div class="form-group">
            <label>Descricao</label>
            <input name="descricao" class="form-control">
        </div>
        <div class="form-group">
            <label>Valor</label>
            <input name="valor" type="number" class="form-control">
        </div>
        <div class="form-group">
            <label>Quantidade</label>
            <input type="number" name="quantidade" class="form-control">
        </div>
        <button type="submit" class="btn btn-primary btn-block">Adicionar</button>
    </form>
@stop 
             
            