会话不在 Vue.js 和 Laravel 中存储数据
Posted
技术标签:
【中文标题】会话不在 Vue.js 和 Laravel 中存储数据【英文标题】:Session not storing data in Vue.js & Laravel 【发布时间】:2019-07-18 11:55:18 【问题描述】:我正在尝试将数据存储到来自 vue.js 的每个 AJAX 调用的 Laravel 会话中。
我想使用会话在 Laravel 购物车中添加产品,但它不存储任何类型的会话数据。我还添加了网络中间件,但没有运气。
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】:您的所有路由都在api
中间件中注册,如果您检查app/Http/Kernel.php
文件,您会看到它没有注册StartSession
中间件。因此,您必须先启动会话才能将数据保存到会话中。
【讨论】:
将此\Illuminate\Session\Middleware\StartSession::class,
添加到中间件中,现在可以正常工作了。谢谢。
也很高兴看看我的这个答案,与会话驱动程序***.com/a/53253184/2693543以上是关于会话不在 Vue.js 和 Laravel 中存储数据的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 如何在会话 Laravel 中存储额外的数据/值
Vue-Router 不在单页应用程序中重新路由(Vue/Laravel)
LARAVEL + Vue.js:使用刀片在 MPA 中显示整个页面的 vue.js 组件,对 SEO 不友好
Laravel + Vue JS:从数据库中获取/存储 Eloquent 模型的值