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

Request sendo passado errado

Ja estava na unidade 6 do curso, tudo funcionando normalmente, do nada quando vou mostrar os detalhes do produto ele já nao vai pra url certa, fica passando por request apenas um "?"

Como está: http://localhost:8000/produtos? Como estava: http://localhost:8000/produtos/info/2

Sendo que eu acessando a url de informação direto ela funciona.

Controller

<?php 
namespace estoque\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Request;

class ProdutoController extends Controller {
    public function Lista(){

        $produtos = DB::select('select * from produtos');
        return view('produto.listagem')->with('produtos', $produtos);

    }

    public function Info(){
        $id = Request::route('id');
        $produto = DB::select('select * from produtos where id = ?',[$id]);
        return view('produto.info')->with('produto', $produto[0]);
    }    

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

}

Rotas

<?php 

Route::get('/', function()
{
    return 'Primeira lógica com Laravel';
});

Route::get('/produtos', 'ProdutoController@Lista');
Route::get('/produtos/info/{id}', 'ProdutoController@Info');
Route::get('/produtos/formulario', 'ProdutoController@Formulario');

Listagem

@extends('layout.principal')

@section('conteudo')

@if(empty($produtos))
    <div>Voce nao tem nenhum produto cadastrado</div>
@else    
    <h1>Listagem de Produtos</h1>
    <form action="">
        <table class="table table-bordered table-striped">
            @foreach ($produtos as $produto)
            <tr class="{{$produto->quantidade <= 1 ? 'danger' : ''}}">
                <td>{{$produto->nome}}</td>
                <td>{{$produto->descricao}}</td>
                <td>{{$produto->valor}}</td>
                <td>{{$produto->quantidade}}</td>
                <td><a href="/produtos/info/{{$produto->id}}">
                    <button class="btn btn-info">Info</button>
                    </a>
                </td>
            </tr>
            @endforeach
        </table>
    </form>
@endif
    <h4>
          <span class="label label-danger pull-right">
            Um ou menos itens no estoque
          </span>
     </h4>
@stop

Informação

@extends('layout.principal')

@section('conteudo')

<h1>Informação do produto: {{$produto->nome}}</h1>

<ul>
  <li>
    <b>Valor:</b> R$ {{$produto->valor}} 
  </li>
  <li>
    <b>Descrição:</b> {{$produto->descricao}} 
  </li>
  <li>
    <b>Quantidade em estoque:</b> {{$produto->quantidade}}
  </li>
</ul>        

@stop
3 respostas

Veja o código fonte da listagem para verificar se o LINK está sendo montado de forma correta. Visualize a listagem no browser e peça para ver o código fonte.

aí que tá, o código da minha listagem é esse que mandei na pergunta, aparentemente normal, qndo passo o mouse em cima do botão de informação aparece a url certa para qual ele deveria ir, porem ao clicar ele vai para http://localhost:8000/produtos?

solução!

Problema resolvido, estava havendo algum tipo de conflito com o button, retirei o

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software