При проверке сайта через postman, мне выдает ошибку:
RuntimeException: Session store not set on request. in file /Users/vladimir/Desktop/shop/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 524.
Раньше все роуты были в файле web, и работали через blade без ошибок. После перехода на api, все функции с сессиями перестали работать не только в postman, но и в vue.js.
Route::group([
'prefix' => 'cart',
'as' => 'cart.',
], function () {
Route::get('', [App\Http\Controllers\CartController::class, 'index'])->name('index');
Route::post('/add', [App\Http\Controllers\CartController::class, 'addToCart'])->name('add');
Route::post('/remove', [App\Http\Controllers\CartController::class, 'remove'])->name('remove');
Route::post('/addQuantity', [App\Http\Controllers\CartController::class, 'addQuantity'])->name('addQuantity');
Route::post('/removeQuantity', [App\Http\Controllers\CartController::class, 'removeQuantity'])->name('removeQuantity');
});
class CartController extends Controller
{
public function index(Request $request)
{
$cart = session()->get('cart');
return $cart;
}
public function addToCart(Request $request)
{
$id = $request->id;
$product = Product::select('id', "title", "price")->findOrFail($id);
$cart = session()->get('cart');
if (!empty($cart[$id])) {
$cart[$id]['quantity']++;
} else {
$cart[$id] = [
'id' => $product->id,
"title" => $product->title,
"quantity" => 1,
"price" => $product->price,
];
}
$request->session()->put('cart', $cart);
return $cart;
}