thinkphp5针对swiper的轮播图的接口

控制器中,banner,通过在模型中处理数据再返控制器
在这里插入图片描述
控制器:

class Banner
{
    /*
     * 获取banner的数据
     * @url /banner/:id
     * @http GET
     * $id banner的id号
     *
     * */
    public function getBanner($id)
    {
        (new IDMustBePostiveInt())->goCheck();
        //通过模型传递处理的数据 通过with进行关联查询
//        $banner = BannerModel::with(['items','items.img'])->find($id);
       $banner = BannerModel::getBannerByID($id);
       //利用hidden的方法进行隐藏
        $banner->hidden(['delete_time']);
        if (!$banner){
            throw new BannerMissException();
        }
        //读取图片的前缀
//        $c = config('setting.img_prefix');
        return $banner;
    }
}

模型:

class Banner extends BaseModel
{
    //需要关联BannerItem的模型 采用创建一个方法的引用的形式进行
    public function items()
    {
        return $this->hasMany('BannerItem','banner_id','id');

    }


    //根据banner的获取id
    public static function getBannerByID($id)
    {
        $banner = BannerModel::with(['items','items.img'])->find($id);
        return $banner;
        //原生查询
        //  $result =  Db::query('select * from banner_item where img_id=?',[$id]);
        //查询构造器PDO的使用 链式方法的使用方式
       //        $result = Db::table('banner_item')
       //            ->where('banner_id','=', $id)
       //            ->select();
      //闭包方式 表达式查询方式 采用use的方法
     //        $result = Db::table('banner_item')
     //            ->where(function ($query) use ($id){
     //                $query->where('banner_id','=',$id);
     //            })
     //            ->select();
    //
   //       return $result;

    }
}

基模型(主要对图片的地址的拼接):

class BaseModel extends Model
{
    //获取图片地址 拼接图片地址
    public function prefixImgUrl($value,$data)
    {
        $finalUrl = $value;
        if ($data['from'] == 1){
            return config('setting.img_prefix').$value;
        }else{
            return $finalUrl;
        }
    }
}

拼接的setting:

在这里插入图片描述
控制器前置的验证器:

(new IDMustBePostiveInt())->goCheck();

在这里插入图片描述
BaseValidate:

    //goCheck的验证
    public function goCheck()
    {
        //通过http请求获取参数
        $request = Request::instance();
        $params = $request->param();
        //对获取的参数进行校验
        $result = $this->batch()->check($params);
        if (!$result){
            $e = new ParameterException(
                [
                    'msg'=>'参数错误',
                    'code'=>400,
                    'errorCode'=>1002
                ]
            );
            throw $e;

        }else{
            return true;
        }
    }
    
    //验证是否为正整数
    public function isPositiveInteger($value,$rule='',$data='',$field='')
    {
        if (is_numeric($value) && is_int($value + 0) && ($value + 0)>0){
            return true;

        }else{
            return  false;
        }
    }

路由:

//导航栏
Route::get('api/:version/banner/:id','api/:version.Banner/getBanner');

postman:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

骨子里的偏爱

上传不易,还请多多支持。

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

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

打赏作者

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

抵扣说明:

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

余额充值