dd($request->session()->get('cart')); empy
Oi, boa tarde, carlos. Desculpa mas estou fazendo este projeito no Lavarel 8, so fiquei sem solucao aqui em esta etapa, no controller Cart, no metodo Add() fazo tudo o indicado e fazo
dd($request->session()->get('cart'));
apos dar o
dd($request->session()->put('cart', $cart));
e mostra o dd perfeito com os items no carrino mas apos dar o redirect e carregar a view do carrinho, simplemente some a informacao do carrinho ele mantem o nome da session mas ele volta vaziu. Ja procurei de tudo mas nao estou dando certo. Se puder dar um help agradeceria
Olá, Marcos!
Tudo bem?
Você está armazenando as sessões como, em arquivo (file), usando o redis?
Cria dessa forma para testar, outro aluno teve um problema semelhante e assim deu certo:
session(['cart' => $cart]);
E recuperar assim:
$cart = session('cart');
Opa, boa noite, sim com o Driver de file, e ja tentei de esa forma que vc indicou e nada, me corrijo o Laravel e o 9, Agora eu estou usando asim...
Está rodando sua aplicação como? Docker?
--
Faz um teste, cria essas duas rotas:
Route::get('teste1', function () {
$cart = 'valor na sessão';
session(['cart' => $cart]);
return redirect()->route('teste2');
});
Route::get('teste2', function () {
dd(session('cart'));
})->name('teste2');
Após criar essas duas rotas, acessa a primeira URL e me diga o resultado.
Opa, estou rodando a aplicacao com wamp server, pra poder habilitar mysql, e o laravel via php artisan serve
resultado da primeira URL
Está armazenando a sessão.
O problema está no código mesmo, tem ele no GitHub?
Sim,
https://github.com/MarkTecnicoDeveloper/ETILaravelPaypal
Aprobeitando tem problema algum se os projeitos do curso eu pegar e fazer com Laravel 9 e TailwindCss, e colocar no meu github como publico, caso huber, so me avisar e eu mudo como privado.
Boa tarde, Carlos, Desculpa incomodar novamente, so que fiquei meio trabado en este curso, fiz varios testes e tudo o que foi string ele mantem na sessao, mas o model ele nao mantem. E o deu certo o Github do projeito?
Acessei aqui o seu GitHub
Deixa a sua classe de carrinho enxuta, assim:
class Cart
{
private array $items = [];
public function add(Product $product)
{
$this->items[$product->id] = [
'item' => $product,
'qtd' => 1,
];
}
public function getItems(): array
{
return $this->items;
}
}
E agora tente novamente armazenar o objeto dessa classe na sessão.
Sim, agora deu tudo certo, muito obrigado, entao so pra entender, o que acontece seria basicamente que como extende da clase modelos e muita informacao pra o session? e ao ser so uma clase com unica responsabilidade consege salvar corretamente?
Ou se huber alguma explicacao diferente e puder me explicar agradeco.
E sobre o git posso deixar o projeito publico pra meu porfolio, com o Laravel 9 e o TailwindCSS?
Com essa classe cart ela tem uma papel bem simples, quanto mais enxuta ela for, melhor.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!