@等车的猪 代码如下:
``
CartController 类
public function add(AddCardRequest $request) {
$user = $request->user();
$skuId = $request->input('sku_id');
$amount = $request->input('amount');
// 判断是否登陆
if(!$user) {
// 如果未登录,将数据存储 session 中
$request->session()->push('sku_id',$skuId.'-'.$amount);
} else {
if($cart = $user->cartItems()->where('product_sku_id',$skuId)->first()) {
$cart->update([
'amount' => $cart->amount + $amount,
]);
} else {
$cart = new CartItem(['amount' => $amount]);
$cart->user()->associate($user);
$cart->productSku()->associate($skuId);
$cart->save();
}
}
return [];
}
``
然后在登陆方法中 ,通过路由找到方法
AuthenticatesUsers 中的方法
处理读取出来的 session
``
protected function sendLoginResponse(Request $request)
{
$user = $request->user();
// 读取session
$skus = $request->session()->all();
// 判断 session 是否存在
if(isset($skus['sku_id'])) {
foreach($skus['sku_id'] as $value) {
// 遍历数据,
$array = explode('-',$value);
if($cart = $user->cartItems()->where('product_sku_id',$array[0])->first()) {
$cart->update([
'amount' => $cart->amount + $array[1],
]);
} else {
$cart = new CartItem(['amount' => $array[1]]);
$cart->user()->associate($user);
$cart->productSku()->associate($array[0]);
$cart->save();
}
}
$request->session()->forget('sku_id');
}
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
``
代码是:类和方法的对应,没有改源代码,只是增加代码
@等车的猪 代码如下:
``
CartController 类
public function add(AddCardRequest $request) {
$user = $request->user();
$skuId = $request->input('sku_id');
$amount = $request->input('amount');
// 判断是否登陆
if(!$user) {
// 如果未登录,将数据存储 session 中
$request->session()->push('sku_id',$skuId.'-'.$amount);
} else {
if($cart = $user->cartItems()->where('product_sku_id',$skuId)->first()) {
$cart->update([
'amount' => $cart->amount + $amount,
]);
} else {
$cart = new CartItem(['amount' => $amount]);
$cart->user()->associate($user);
$cart->productSku()->associate($skuId);
$cart->save();
}
}
return [];
}
``
然后在登陆方法中 ,通过路由找到方法
AuthenticatesUsers 中的方法
处理读取出来的 session
``
protected function sendLoginResponse(Request $request)
{
$user = $request->user();
// 读取session
$skus = $request->session()->all();
// 判断 session 是否存在
if(isset($skus['sku_id'])) {
foreach($skus['sku_id'] as $value) {
// 遍历数据,
$array = explode('-',$value);
if($cart = $user->cartItems()->where('product_sku_id',$array[0])->first()) {
$cart->update([
'amount' => $cart->amount + $array[1],
]);
} else {
$cart = new CartItem(['amount' => $array[1]]);
$cart->user()->associate($user);
$cart->productSku()->associate($array[0]);
$cart->save();
}
}
$request->session()->forget('sku_id');
}
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
``
代码是:类和方法的对应,没有改源代码,只是增加代码
@等车的猪 代码如下:
``
CartController 类
public function add(AddCardRequest $request) {
$user = $request->user();
$skuId = $request->input('sku_id');
$amount = $request->input('amount');
// 判断是否登陆
if(!$user) {
// 如果未登录,将数据存储 session 中
$request->session()->push('sku_id',$skuId.'-'.$amount);
} else {
if($cart = $user->cartItems()->where('product_sku_id',$skuId)->first()) {
$cart->update([
'amount' => $cart->amount + $amount,
]);
} else {
$cart = new CartItem(['amount' => $amount]);
$cart->user()->associate($user);
$cart->productSku()->associate($skuId);
$cart->save();
}
}
return [];
}
``
然后在登陆方法中 ,通过路由找到方法
AuthenticatesUsers 中的方法
处理读取出来的 session
``
protected function sendLoginResponse(Request $request)
{
$user = $request->user();
// 读取session
$skus = $request->session()->all();
// 判断 session 是否存在
if(isset($skus['sku_id'])) {
foreach($skus['sku_id'] as $value) {
// 遍历数据,
$array = explode('-',$value);
if($cart = $user->cartItems()->where('product_sku_id',$array[0])->first()) {
$cart->update([
'amount' => $cart->amount + $array[1],
]);
} else {
$cart = new CartItem(['amount' => $array[1]]);
$cart->user()->associate($user);
$cart->productSku()->associate($array[0]);
$cart->save();
}
}
$request->session()->forget('sku_id');
}
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
``
代码是:类和方法的对应,没有改源代码,只是增加代码
推荐文章: