重定向方法redirect(url)
能否在 控制器类
的父类中可实现跳转(文档是说只能在中间件或控制器中可跳转)
//基类
abstract class Base
{
....
public function xyz()
{
...
if($flag) {
return redirect(url); // 这里是不能跳转的
}
}
}
//控制器类
class Index extends Base
{
public function index()
{
.....
return redirect(url); //这里跳转是正常
}
}
业务类 BusinessException,当前只有传递两个参数,怎么改造可以传递多个参数,能返回如下的json数据格式(或者返回能指定视图模板更灵活):
//改造后能实现的调用
ChangException("信息", 200, ['url'=>'https://www.workerman.net/'])
//返回给终端
{"code":200, "msg":"信息", data:['数组']}
请教下大佬们是否好实现,谢谢!
异常处理参考文档,你可以自己定义一个异常类,加上你要的参数和你需要渲染的结果
https://www.workerman.net/doc/webman/exception.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%9A%E5%8A%A1%E5%BC%82%E5%B8%B8
redirect()实际上就是返回一个response对象,你能让被调用的控制器返回这个对象就行,例如。
如果你想要在任意位置跳转(非控制器),也可以利用自定义异常做到,自定义异常的render方法里return redirect(...);就好了。
app/functions.php里封装一个函数
这样在任意位置调用my_redirect()就可以跳转了。
好的,已经完美解决问题,感谢大佬!