首页 文章

如何在Laravel中将参数绑定到Cart :: create? [关闭]

提问于
浏览
-2

我想将当前用户的 user_id 存储在Laravel的数据库中:

public function AddToCart(Request $request)
{
 Cart::create([
 'user_id'=>Auth::user()->id, 
 'product_id'=>$request->AddToCart
 ]);

return redirect('#');
}

这里 user_id 是一个属性, $userId 是我想要存储在数据库中的用户ID . 但是我收到以下错误:

SQLSTATE [HY000]:常规错误:1364字段'user_id'没有默认值

1 回答

  • 0

    laravel非常简单 . 你可以这样做;我们还需要检查用户是否实际验证了d

    if (Auth::user()) {
      Cart::create([
        'user_id' => Auth::user()->id, 
        'product_id' => $request->AddToCart
      ]);
    }
    

    别忘了使用Illuminate \ Support \ Facades \ Auth;在你的 class 顶部 .

    对于您获得的错误,一种可能的解决方案可能是创建新的迁移: php artisan make:migration modify_user_id_in_carts_tabel --table=carts 并添加以下内容:请注意,如果您没有,则可能需要运行 composer require doctrine/dbal .

    $table->unsignedInteger('user_id')->nullable()->change();
    

相关问题