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

问题描述 投票:0回答:1

要添加到购物车,客户必须登录,在购物车表中,我有一个用户ID列,但在用户ID列中,数据库中所有的用户ID都会添加!例如,对于产品1,所有用户1,用户2,用户3的ID都会添加,而不仅仅是一个登录的用户。

购物车表。

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');
    }

问题出在哪里?

laravel
1个回答
1
投票

你目前是通过以下方式来请求所有用户id的 $user_id = User::get('id'); 所以如果你想把user_id设置为你的认证用户id,你需要替换。

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

by:

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

或更短的版本。

    $user_id = Auth::id();
© www.soinside.com 2019 - 2024. All rights reserved.