简介
使用dingo返回数据,一开始有点懵,现在开始有点明晰了.
详细
方法一
用Dingo的Transformer. 其实这两种写法都可以 用Transformer()更简洁和灵活一些.
因为Transformer()不仅可以利用 return $ECUser->attributesToArray();
将属性转换成数组
还可以添加和转换数据库中没有的字段,还可以用 include
做类似关联表的作用,具体看这里: Dingo Transformers 的使用(Fractal)
所以这个很灵活,可以在这个类里添加更多的操作,当然只是返回array的话,还是稍显麻烦因为还得建立个文件.
补充:
Dingo返回数据几种形式:
Responding With An Array 响应一个数组return $this->response->array($user->toArray());
Responding With A Single Item 响应一个元素return $this->response->item($user, new UserTransformer);
Responding With A Collection Of Items 响应一个元素集合return $this->response->collection($users, new UserTransformer);
Responding With Paginated Items 分页响应return $this->response->paginator($users, new UserTransformer);
1 |
|
方法二
直接用array开发是更快一些,因为不用去建立文件.
这里是利用的Dingo的reponse并不是laravel的,所以要看清
1 | // 这里返回一定要是toArray() |
方法三
完全用laravel来返回 json, 不用插件来做.
1 | $wallet = ECUser::where('user_id',$id)->select('user_money','pay_points')->first()->toArray(); |