会话不在Vue.js和Laravel中存储数据

问题描述 投票:1回答:1

我试图在vue.js的每个AJAX调用中将数据存储到Laravel会话中。

我想使用会话在Laravel购物车中添加产品,但它不存储任何类型的会话数据。我还添加了Web中间件,但没有运气。

api.php

<?php
    Route::group(['namespace' => 'Api'],function(){
        Route::resource('product','ProductController');
        Route::post('add-to-cart','ProductController@addToCart');
    });

ProductController.php

<?php
    public function addToCart(Request $request){
    $product = $request->all();

    $cart = Session::get('cart');
    $cart[$product['id']] = $product;
    Session::push('cart', $cart);

    return Response::json(['success' => true, 'cart_items' => Session::get('cart')]);
}

ProductListComponene.vue

addToCartProduct(product){
    fetch('api/add-to-cart',{
        method: 'post',
        body:JSON.stringify(product),
        headers:{
            'content-type':'application/json'
        }
    })
    .then(res => res.json())
    .then(res => {
        console.log(res);
    })
    .catch(err => console.log(err));
}                 
php laravel vue.js laravel-5.7
1个回答
1
投票

您的所有路由都在api中间件中注册,如果您查看app/Http/Kernel.php文件,您将看到它没有注册StartSession middelware。因此,您必须首先启动会话才能将数据保存到会话中。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.