webman控制器调用基础控制器中的方法,方法里return json输出无效

lf迷途

问题描述

Base基础类
截图

Index控制器
截图

如上图,我在基础类Base里定义了一个R方法,用来判断接口接收到的参数是否存在、有值、有效;
我现在在Index控制里调用这个R方法,如果客户端没传过来这个index参数,访问时是没有返回R方法中的提示的,只能在Index这边加个return才行,但是这样就直接停止执行了
想问下大家,我应该怎样来做这个判断参数有效的功能呢?

668 7 0
7个回答

gddd

我猜你是想有参数就继续往下执行,没有就直接返回json是吧

  • lf迷途 2023-09-07

    是的,就是想要定义一个公共方法R,而webman好像是一定要在当前控制器return才有效。
    新手小白一枚,不知道有什么好的解决方法,请各位大佬不吝赐教啊!!!

  • PHP甩JAVA一条街 2023-09-08

    判断状态码返回异常, 不然就执行下面逻辑

  • PHP甩JAVA一条街 2023-09-08

    if($index == 1002){ return '参数不对'}
    //执行下面逻辑

  • lf迷途 2023-09-08

    那如果一个接口有很多参数的话,要写一堆if吗?

  • PHP甩JAVA一条街 2023-09-08

    写个公共属性, 不需要很多if, 一个就行了

白鹄

抛异常 捕获异常 返回json

  • lf迷途 2023-09-07

    嗯,有想到通过异常,但是这样是不是就得每个接口控制器里都要写一段捕获的代码的?强迫症患者表示有点难于接受...

  • 白鹄 2023-09-07

    写个异常收集器就行了 不用每个

  • PHP甩JAVA一条街 2023-09-08

    正常代码为何要用异常? JAVA转过来的吗? JAVA喜欢用try

  • 白鹄 2023-09-08

    为什么不用异常?

  • 白鹄 2023-09-08

    这是cli

  • lf迷途 2023-09-08

    嗯,用异常来输出就好,谢谢

  • PHP甩JAVA一条街 2023-09-08

    正常逻辑代码, 为啥要异常? 1+1 运算也要用异常吗?

  • PHP甩JAVA一条街 2023-09-08

    cli 这么不稳吗? 无缘无故引入一个类

latin

use support\exception\BusinessException;
然后R方法里return json直接改成
throw new BusinessException('错误信息', 1002);

框架会捕获异常并返回json,不用自己捕获,非常方便

  • PHP甩JAVA一条街 2023-09-08

    别用异常, 本来是正常执行, 为何要用异常返回?

  • PHP甩JAVA一条街 2023-09-08

    java吗? 亲眼见过JAVA写的运算逻辑, 然后加try , 抛出 '你提交的太快了, 请稍候再试'

  • PHP甩JAVA一条街 2023-09-08

    一个项目, 几百个try

  • lf迷途 2023-09-08

    throw new BusinessException('错误信息', 1002);
    好用,不用try也能输出,谢谢

  • PHP甩JAVA一条街 2023-09-08

    如果错误里面还要写个逻辑呢, 例如登录控制器多次登录密码错误, 然后锁定用户, 肯定不能在基类写了

PHP甩JAVA一条街

A调用B, B return 给A, A接受再return给api

  • lf迷途 2023-09-08

    嗯,但是这样A需要判断B返回的是什么,才知道是否需要return还是继续往下执行,每个参数都得这样判断一遍,这样的话就不是我提这个问题的初衷了,我是想一个公共方法就搞定,不需要再后续判断了

  • PHP甩JAVA一条街 2023-09-08

    多用个类, 简单参数判断, 不如自己写个公共参数异常方法

小W

缺少return

  • 暂无评论
nitron

可以抛出异常,然后用这个异常处理插件
https://www.workerman.net/plugin/16

  • 暂无评论
walkor

用框架自带的 BusinessException异常 即可,非常简单方便

  • 暂无评论
🔝