缺少 [Route: add-item] [URI: home/{id}] [缺少参数:id] 的必需参数。错误

时间:2021-03-24 09:53:53

标签: laravel laravel-8

这里有点问题 我试图让我的按钮将我主页上的一些产品放入购物车 这是我的一些代码

路线

Route::get('/home/{id}', [HomeController::class, 'addItem'])->name("add-item");

控制器

public function addItem($id)
{
    $produk = Jasa::find($id);
    $id_user = Auth::id();
    $cart_name = $produk->nama_jasa;
    $cart_harga = $produk->estimasi_harga;
    $cart = Cart::create([
        'user_id' => $id_user,
        'name' => $cart_name,
        'harga' => $cart_harga,
    ]);
    $cart->save();
    return back();
}

刀片

@foreach ($jasas as $jasa)
    <div class="desainFurnitur" data-aos="fade-up" data-aos-delay="300">
        <img src="{{ asset('storage/ListJasa/' . $adminListJasa[0]->filename) }}">
        <div class="text-listjasa">
            <h3>{{ $adminListJasa[0]->heading }}</h3>
            <p type="hidden" class="text-center font-weight-bold card-text">{{$jasa->name}}</p>
        </div>
        <a href="{{ route('add-item',['id'=>$jasa->id] ) }}" class="btn btn-secondary">Add To Cart</a>
    </div>
@endforeach

3 个答案:

答案 0 :(得分:1)

Id 有值

首先检查 $jasa->id 不为空。

您的路线是

Route::get('/home/{id}', [HomeController::class, 'addItem'])->name("add-item");

参数 id 是必需的。当您传递 null 时,会生成这些类型的错误。所以请确保您没有通过 'id' => null;

出于测试目的,您可以将这些参数设为可选,例如

Route::get('/home/{id?}', [HomeController::class, 'addItem'])->name("add-item");

在方法中你需要写

public function addItem($id = null)

答案 1 :(得分:0)

试试这个,希望对你有帮助

{{route('add-item',$jasa->id)}}

or 

{{ route('add-item',[$jasa->id] ) }}

答案 2 :(得分:0)

首先 dd($jasas);dd($jasa) 知道 id 存在的位置。错误是因为 id 没有被添加到路由中..

谢谢

相关问题