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

时间:2019-02-25 05:39:23

标签: php laravel vue.js laravel-5.7

我正在尝试在来自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));
}                 

1 个答案:

答案 0 :(得分:1)

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

enter image description here