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