0
My Controller
public function Adicionar(Request $request) {
$id_produto = $request->get('botao');
$itens = $this->carrinho->getItens();
//dd($itens);
try{
foreach($itens as $item){
$est = Produto::find($id_produto);
if($id_produto == null){
return \Redirect::back()->with('mensagens-erro', 'Erro, Não há produto Selecionado');
}elseif($item->produto->id != $id_produto){
$this->carrinho->add($id_produto);
return \Redirect::back()->with('mensagens-sucesso', 'Produto adicionado ao carrinho 1');
}else{
if($item->produto->id == $id_produto){
$item->qtde++;
return \Redirect::back()->with('mensagens-sucesso', 'Produto adicionado ao carrinho 2');
}
}
}
}catch(Exception $e){
return redirect()->back()
->with('mensagens-erro', 'Erro!!!')
->withInput();
}
if($this->carrinho->add($id_produto)){
return \Redirect::back()->with('mensagens-sucesso', 'Produto adicionado ao carrinho');
}else{
return redirect()->back()
->with('mensagens-danger', 'Erro não é possivel adicionar Produto desejado')
->withInput();
}
}
My View
@extends('layouts.frente-loja')
@section('conteudo')
<br/>
<h2>Cardápio</h2>
@foreach($produto as $produto)
<div class="col-lg-4 col-md-6 mb-4">
<div class="card h-100">
<img style='height:300px; width:300px;' src="{{route('imagem.file',$produto->imagem_nome)}}" alt="">
<div style='margin-bottom: 30px;' class="card-body">
<h4 class="card-title">
{{$produto->nome}}
</h4>
<p class="card-text">{{str_limit($produto->descricao,100)}}</p>
<h4 class="card-text">R${{$produto->preco_venda}}</h4>
<!-- Trigger the modal with a button -->
<button type="button" class="btn btn-primary btn-lg getid" value='{{$produto->id}}' data-toggle="modal" data-target="#myModal">Mais Detalhes</button>
</div>
</div>
</div>
@endforeach
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p class='conteudo'></p>
<p class='valor'></p>
<img style='height:200px; width:200px;' class="imagem" />
<br/>
<form class="action_carrinho" action="{{route('adicionar')}}">
</div>
<div class="modal-footer">
<button type="submit" name="botao" value="" class="btn btn-primary btn-lg pull-left add_carrinho" > Adicionar ao carrinho</button>
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">Fechar</button>
</form>
</div>
</div>
</div>
</div>
<!-- Modal carrinho -->
<div id="carrinho_id" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Carrinho</h4>
</div>
<div class="modal-body">
<table class="table table-striped">
<thead>
<tr>
<th></th>
<th>Produto</th>
<th class="text-right">Preço Unitário</th>
<th>Quantidade</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($itens as $item)
<tr class="teste">
<td>
<img src="{{route('imagem.file',$item->produto->imagem_nome)}}" alt="{{$item->produto->imagem_nome}}" data-lightbox="roadtrip" style="width:70px;" >
</td>
<td>
<a href="{{route('produto.detalhes', $item->produto->id)}}">
{{$item->produto->nome}}
</a>
</td>
<td class="text-center">
{{number_format($item->produto->preco_venda, 2, ',', '.')}}
</td>
<td class="text-center">
{{$item->qtde}}
</td>
<td> <a href="{{route('remover', $item->produto->id)}}"
class="btn btn-danger btn-xs pull-right">Excluir item </a>
</td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<td colspan="3" class="text-right">
Total
</td>
<td>
<h4 class="text-center text-danger">
R${{number_format($total,2,',','.')}}
</h4>
</td>
</tr>
</tfoot>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">Fechar</button>
<button type="submit" name="botao" class="btn btn-primary btn-lg pull-left add_carrinho" > Confirmar pedido</button>
</div>
</div>
</div>
</div>
<script src="{{asset('bootstrap/js/jquery.min.js')}}"></script>
<script type="text/javascript">
$(function() {
$.ajaxSetup({
headers:{
'X-CSRF-Token':$('input[name="_token"]').val()
}
});
$('.getid').click(function(){
var id = $(this).attr('value');
$.ajax({
type: "GET",
url: 'http://localhost:8000/mesa/produto/'+id,
data: {id: id},
success: function(id) {
$('.modal-title').html(id.nome);
$('.conteudo').html(id.descricao);
$('.valor').html('R$: '+id.preco_venda);
$(".imagem").attr("src",'http://localhost:8000/imagem/arquivo/'+id.imagem_nome);
$('.add_carrinho').val(id.id);
//console.log($('.add_carrinho').val());
console.log(id.id);
},
});
});
});
</script>
<script type="text/javascript">
$(function() {
$('.add_carrinho').click(function(){
window.location.href = "http://localhost:8000/finalizar_cardapio/";
});
});
</script>
@stop
Which PHP do you use? This function $this->certinho->getItens() as Voce does setItens? Because these items only exist in this code block. In other words, it is a local variable. When Voce redirects the array change is not persisted in affection
– Mauricio Wanderley Martins
public Function getItens() { Return $this->items; }
– Diego Martins