添加一种产品的所有用户ID

时间:2020-05-02 11:09:22

标签: laravel

要添加到购物车,客户必须登录,在购物车表中,我有一列代表user_id,但在user_id列中,数据库中的所有user_id都添加了!例如,对于product1,所有user1,user2,user3 ide不仅添加了一个已登录的用户在

购物车表:

Schema::create('cart', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('product_id');
            $table->char('user_id');
            $table->string('session_id');
            $table->string('product_name');
            $table->string('user_email');
            $table->integer('qty');
            $table->integer('product_price');

            $table->timestamps();
        });

控制器中的addToCart方法:

public  function  addtocart(Request $request){
        $data = $request->all();
        if (empty($data['user_email'])){
            $data['user_email'] = ' ';
        }
        $user_id = User::get('id');
        if (empty($user_id)){
            $user_id = Auth::user()->id;
        }

        $session_id = Session::get('session_id');
        if (empty($session_id)){
            $session_id = Str::random(40);
            Session::put('session_id' , $session_id);
        }

        DB::table('cart')->insert(['product_id' => $data['product_id'] ,  'product_name' => $data['product_name'], 'user_id'=>$user_id,
            'product_price' => $data['product_price'], 'qty' => $data['qty'], 'user_email' => $data['user_email'] , 'session_id' => $session_id ]);

        return redirect('cart');
    }

出什么问题了?

1 个答案:

答案 0 :(得分:1)

您当前正在通过执行$user_id = User::get('id');来请求所有用户ID,因此,如果要将user_id设置为经过身份验证的用户ID,则需要替换:

    $user_id = User::get('id');
    if (empty($user_id)){
        $user_id = Auth::user()->id;
    }

作者:

    $user_id = Auth::user()->id;

或更短的版本:

    $user_id = Auth::id();