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

Adicionar produto

Quando vou adicionar um produto e abre a página escrito "Forbidden". Método adiciona

public function adiciona(ProdutoRequest $r){




        Produto::create($r->all());
        return redirect()->action('ProdutoController@lista')->withInput($r->only('nome'));
    }

Request

<?php namespace estoque\Http\Requests;

use estoque\Http\Requests\Request;

class ProdutoRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return false;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'nome' =>  'required|max:200',
            'descricao' => 'required|max:255',
            'valor' => 'required|numeric',
            'quantidade' => 'required|numeric',
            'tamanho' => 'required|max:100'
        ];
    }
}

listagem.php

@extends('layout.principal')

@section('conteudo')

    <div class="container">
    <h1 align="center">Lista de produtos</h1>
    <table  class="table table-striped table-bordered table-hover ">
      <tr>
        <td>Nome</td>
        <td>Valor</td>
        <td>Descrição</td>
        <td>Quantidade</td>
        <td>Tamanho</td>
        <td>Detalhes</td>
        <td>Excluir</td>
        <td>Alterar</td>
      </tr>
      @if(empty($produtos)){
        <div class="alert alert-danger">
          Você não tem nenhum produto cadastrado!
        </div>
      }@else
        @foreach ($produtos as $p)  
        <tr class="{{ $p->quantidade <=1 ? 'danger' : ''}}">
          <td class="bg-primary"><?= $p->nome ?></td>
          <td> {{ $p->valor }}</td>
          <td> {{ $p->descricao }}</td>
          <td> {{ $p->quantidade }}</td>
          <td> {{ $p->tamanho }}</td>
          <td>
            <a href="/produtos/mostra/{{$p->id }} "> 
              <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
            <a/>
          </td>

         <td>
            <a href="{{action ('ProdutoController@remove',$p->id )}} "> 
              <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
            <a/>
          </td>

        <td>
            <a href="{{action('ProdutoController@buscar',$p->id) }} "> 
              <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
            <a/>
          </td>
        </tr>

        @endforeach 
        @endif
    </table>
    <h4>
    <span class="label label-danger pull-right">
      Um ou menos itens no estoque
    </span>
    </h4>
    </div>
    @if(old('nome'))
      <div class="alert alert-success">
       <strong>Sucesso!</strong> 
        O produto {{old('nome')  }} foi adicionado.
      </div>
    @endif
   @stop
4 respostas

Oi Mauro, tudo bom?

Repare que seu retorno do método deve acessar o método only() do seu resquest de forma estática:

return redirect()
    ->action('ProdutoController@lista')
    ->withInput(r::only('nome')); \\ acessando de forma estática

Verifique a forma de acesso =)

Qualquer dificuldade, compartilhe com a gente!

Olá André, tudo e contigo?

Cara, sou novo na área tentei retirar o método e colocar para retornar a view do produto lista e deu o mesmo erro, agora, quando tiro o ProdutoRequest do parâmetro no método adiciona roda beleza. meu return ficou "retrun view('produto.lista');" mas mesmo assim apareceu a mesma resposta.

```

E meu sistema operacional é Ubuntu versão 15.10 não sei se interfere em algo.

solução!

Achei o erro , era no function authorize() tem que retornar true e estava false, obrigado pela força André

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