laravel5.4 cookie商品最近浏览功能

MODEL:


class MyCookie
{
    //存储cookie
    public function checkCookie($data,$arr)
    {
        if (!empty($data)) {
            //重建数组 不能超过10
            if ($count = sizeof($data) > 10) {
                array_splice($data, 11, $count);
            }
            //判断商品已经存在
            foreach ($data as $k => $v) {
                if ($arr['commod_id'] == $v['commod_id']) {
                    array_splice($data, $k, $k + 1);  //删除重复元素
                    break;
                }
            }
            array_unshift($data, $arr); //将刚浏览的添加到数组开头
            return $data;
        }else{
            return $arr;
        }
    }
}

Controller:
use App\Http\Controllers\Controller;
use App\Http\Model\CommodInfo;
use App\Http\Model\Controll;
use App\Http\Model\MyCookie;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use Illuminate\Support\Facades\Cookie;

class CookieController extends Controller
{
    //处理cookie数据 后浏览靠前  不重复  限制十条
    public function setCookie(Request $request)
    {
        $id = $request->input("commod_id");
        $arr1 = $request->cookie('name');
        $arr2 = (new CommodInfo())->getGoodsCookie($id)->toArray();
        if (empty($arr1))
            $data[0] = $arr2;
        else
            $data = (new MyCookie())->checkCookie($arr1, $arr2);
        Cookie::queue('name', $data, 60 * 24 * 7);
    }

    public function getCookie(Request $request)
    {
        $value = $request->cookie('name');
        return $value;
    }
}

使用:
//获取商品详情和小图片
public function getGoodsDetail(Request $request)
{
    if (!is_numeric($request->input("commod_id"))) {
        return redirect('/error');
    }
    (new CookieController())->setCookie($request);
    if ($arr = (new CommodInfo())->getGoodsDetail($request->input("commod_id"))) {
        $arrImg = (new CommodImages())->getImages($arr->commod_id);
        return view('anhshop.index.goods_detail', compact('arr', 'arrImg'));
    }
}

//获取
调用model的getCookie()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳十三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值