我在控制器里,A函数调用B函数,B函数return 结果给A函数,然后A函数return json(值),显示空白,收不到B函数返回的值,请问咋整呢?
应该返回:请登录后操作,如果我在【1】代码那里return一下,就做不到代码重复利用,基本每行代码要判断两次错误
//检验用户
public function checkUsers($access_token = ''){
if(!$access_token){
return json(['status' => 201,'msg' => '请登录后操作']);
}
$userData = object_array(Db::table('users')->where('access_token',$access_token)->first());
if(!$userData){
return json(['status' => 201,'msg' => '系统错误~,打开“系统设置”->“清除缓存”']);
}
$this->userData = $userData;
}
//保存用户资料
public function editUserInfo(Request $request){
$this->checkUsers($request->post('access_token'));
return json($this->userData);
}
如果return给调用者,就做不到代码重复利用,我得在调用者(有多个业务)代码里重复判断【请登录操作和系统错误之类的】
多种方式满足要求
1.中间件处理
2.抛异常后捕获处理
还是得return?
你需要在公共方法里抛出异常
return?
你这个最好自定义一个异常类,不管是控制器层、模型层或者服务层都能直接把异常抛出
https://www.workerman.net/a/1429
参考这篇文章就可以,自定义很灵活好的,谢谢哥指点
请教下,你这个
object_array
是什么函数自己写的呗,将对象转数组
我记得好像有个 first()->toArray() 方法,哈哈哈
为哈我用这个->toArray(),显示未定义?
我laravel用的少些,https://cloud.tencent.com/developer/article/1649927
我用的这个
function object_array($array) {
if(is_object($array)) {
$array = (array)$array;
}
if(is_array($array)) {
foreach($array as $key=>$value) {
$array[$key] = object_array($value);
}
}
return $array;
}
first()可以直接当成array用
上面这个咋去掉呢?异常捕捉到了
json上面有其它的东西
搞定,谢谢各位php大佬
试试这个吧...你这不停的try看着心累
https://www.workerman.net/a/1293
谢谢哥,我试试