电商网站之订单

该博客讨论了电商网站中订单的管理,包括多表操作实现订单与商品信息的关联,通过PHP的+=操作计算总价和总数。还提到了订单首页的功能,以及设置订单状态修改的路由,特别指出已完成的订单不允许修改,使用了any类型的路由进行处理。
摘要由CSDN通过智能技术生成
public function index()
    {
        $data = DB::table('orders')->select('orders.*','user.name as uname','orderStatus.name as statusName')
        ->join('user','user.id','=','.orders.uid')
        ->join('orderstatus','orderstatus.id','orders.status')->get();
        $newArr = array();
        foreach ($data as $k=>$v){
            $newArr[$v->order_code] = $v;   //将订单号放进下标里,如果有重复的可以很巧妙的进行重写
        }
        return view('admin.order.index')->with('data',$newArr);

    }

    //查看详情
    public function list(Request $request)
    {
        //获取订单号
        $code = $request->input('code');
        $data = \DB::table('orders')->select('orders.*','goods.title','goods.img')->join('goods','goods.id','=','orders.goods_id')->where('order_code',$code)->get();
        return view('admin.order.list')->with('data',$data);
    }

    public function addr(Request $request)
    {
        $aid = $_GET['aid'];
        $data = \DB::table('address')->where('addr_id','=',$aid)->get();
        return view('admin.order.addr')->with('data',$data);
    }

涉及到多表操作,点击订单号跳转订单商品信息,同时还有收货人信息链接。

商品信息因为涉及到总价和总数,用到php+=操作

<table border="1">
    <tr>
        <th>商品</th>
        <th>图片</th>
        <th>数量</th>
        <th>价格</th>
        <th>小计</th>
    </tr>
    <?php
        $money = 0;
        $num = 0;
    ?>
    @foreach($data as $v)
    <tr>

        <td>{{$v->title}}</td>
        <td><img width="200" src="/uploads/{{$v->img}}" alt=""></td>
        <td>{{$v->num}}</td>
        <td>{{$v->price}}</td>
        <td>{{$v->num*$v->price}}</td>

    </tr>
        <?php
        $num += $v->num;
        $money += $v->num*$v->price;
        ?>
        @endforeach

        <tr>
            <td>合计</td>
            <td>总数</td>
            <td>{{$num}}</td>
            <td>总价</td>
            <td>{{$money}}</td>
        </tr>

</table>

这里是订单首页

@extends('admin.public.admin')
@section('main')
<table border="1">
    <tr>
        <th>订单号</th>
        <th>用户名</th>
        <th>收货人信息</th>
        <th>是否支付</th>
        <th>状态</th>
        <th>下单时间</th>
        <th>操作</th>
    </tr>
    @foreach($data as $v)
        <tr>
            <td><a href="/admin/orders/list?code={{$v->order_code}}">{{$v->order_code}}</a></td>
            <td>{{$v->uname}}</td>
            <td><a href="/admin/orders/addr?aid={{$v->addr_id}}">链接</a></td>
            @if($v->pay==0)
                <td>未支付</td>
            @else
                <td>已支付</td>
            @endif
            <td>{{$v->statusName}}</td>
            <td>{{date('Y-m-d H:i:s',$v->time)}}</td>
            @if($v->status==6)
            <td><a href="javascript:;">修改状态</a></td>
            @else
                <td><a href="/admin/orders/editStatus?sid={{$v->sid}}&code={{$v->order_code}}">修改状态</a></td>
            @endif
        </tr>

    @endforeach
</table>
    @endsection

再加一个修改状态,已完成的时候不能修改,用了一个路由,所以访问类型any

//修改订单状态
Route::any(‘orders/editStatus’,‘OrdersController@editStatus’);

public function editStatus(Request $request){
        if($_POST){
            $sid = $request->input('sid');
            $code = $request->input('code');
            $sql = "update orders set status=$sid where order_code='$code'";
            $res = \DB::update($sql);
            if($res){
                return redirect('/admin/orders');
            }else{
                return back();
            }
        }else{


            $data = \DB::table('orderstatus')->get();
            return view('admin.order.editStatus')->with('data',$data);
        }
    }

跳转

<form action="/admin/orders/editStatus" method="post">
@csrf
<table border="1">

    <tr>
        <th>订单号</th>
        <td><input type="text" value="{{$_GET['code']}}" name="code"></td>
    </tr>
    <tr>
        <th>选择状态</th>
        <td>
            <select name="sid" id="">
                @foreach($data as $v)
                    @if($v->id==$_GET['sid'])
                        <option selected value="{{$v->id}}">{{$v->name}}</option>
                    @else
                        <option value="{{$v->id}}">{{$v->name}}</option>
                    @endif
                    @endforeach
            </select>
        </td>

    </tr>


    <tr>
        <td colspan="2"><input type="submit" value="提交"></td>
    </tr>
</table>
</form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值