如何在会话Laravel中存储输入

tas*_*nta 1 php forms session laravel

我是Laravel的新手在这里我试图将我的输入表单发布到会话中但是它不起作用我得到这个错误而没有任何消息:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
Run Code Online (Sandbox Code Playgroud)

我一无所获,在这里我分享了一些代码.

我的控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Category;
use \App\Product;

class ShopController extends Controller
{
    public function index()
    {
        $categories = Category::with('products')->get();
        return view('shop.index', compact('categories'));
    }

    public function category($id)
    {
        $products = Category::find($id)->products;
        return view('shop.1', compact('products'));
    }

    public function addToShoppingCart(Request $request)
    {
        $request->session()->put('cart', 'id');
        $request->session()->put('cart', 'number');

        $request->session()->flash('status', 'Product is toegevoegd!');
        return redirect()->back();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的看法:

@extends('layouts.app')

@section('content')
    @if(Session::has('id', 'number'))
        <div class="alert alert-success">
            {{Session::get('id', 'number')}}
        </div>
    @endif
    @foreach ($products as $product)
        <ul>
            <li>{{ $product->name }}</li>
            <li>{{ $product->description }}</li>
            <li>{{ $product->price }}</li>
            <li>{{ $product->amount }}</li>
        </ul>
        <form method="post" action="{{url('categories\{id}')}}">
            @csrf
            <div class="col-md-4">
                <label for="number">Aantal:</label>
                <input type="number" name="number">

                <label for="id">Id:</label>
                <input type="text" id="id" name="id" value= {{$product->id}}>

                <button type="submit" class="btn btn-success">Add product</button>
            </div>
        </form>
    @endforeach
    {{var_dump(Session::get('cart'))}}

@endsection
Run Code Online (Sandbox Code Playgroud)

我的路线:

Route::get('/shop', 'Shopcontroller@index')->name('shop');
Route::get('/categories/{id}', 'ShopController@category');
Route::get('/cart/{id}', 'ShopController@addToShoppingCart');
Run Code Online (Sandbox Code Playgroud)

我希望有人可以帮我解决我的问题,把输入放在laravel会话中.

小智 5

您正尝试使用"获取"路线"发布".你应该改变Route::get通过Route::post