laravel - Laravel 5.4 控制器功能无法使用来自 ionic 3 的获取请求参数
问题描述
我正在尝试将 ionic 应用程序传递给 laravel 5.4 应用程序,并且此参数是一个数组,我已经能够成功传递参数,但我能够使用该参数从数据库中选择记录。
这是我的 ionic 3 提供程序功能:
getMySmartQueues(data){
let params = new HttpParams();
params = params.append("sq_ids", JSON.stringify(data));
return this.http.get(this.url + 'my/smart/queues', {params: params});
}
这是我的 laravel 控制器功能:
public function getMySmartQueues(Request $request){
$ids = $request['sq_ids'];
$my_sq = SmartQueue::whereIn('id', $ids)->get();
return $my_sq;
}
这是我订阅提供程序功能的方式是我的页面:
ionViewDidLoad() {
this.storage.get('sq_ids').then(
res => {
console.log(res);
if(res != null){
this.sq_ids= res;
console.log(this.sq_ids);
this.mService.getMySmartQueues(this.sq_ids).subscribe(
data => {
console.log(data);
}
);
}
}
);
}
但我得到服务器内部错误。但是,如果我必须为控制器函数硬编码一个默认值,比如说[5,6]
,它将返回 this 的记录ids
,但它不能返回ids
从 ionic 3 应用程序发送的记录,如果有人可以的话,我会很高兴帮帮我。
此外,如果我将请求更改为请求,put
我可以获得ids
从离子应用程序发送的记录。但是我想要一个获取请求。
解决方案
我已经弄清楚了,这就是我必须做的,我认为有一天它可能会对某人有所帮助,我只需要这样json_decode
的请求:
public function getMySmartQueues(Request $request){
$ids = $request['sq_ids'];
$my_sq = SmartQueue::whereIn('id', json_decode($ids))
->with(
'station.company'
)->get();
return $my_sq;
}
推荐阅读
- javascript - 如何显示或隐藏页面重定向?
- memory - JVM8和JVM11的内存结构有区别吗?
- c# - 快照产生的低质量图片。WPF
- css - 除了标题幻灯片之外,如何在 RMarkdowns 的 ioslides 中放置徽标?
- php - GuzzleHTTP 在现有页面上返回 404
- python - 可被任何给定数整除的回文数
- c# - 如何限制datalist中的单词数?
- xml - 多语言页面的 sitemap.xml
- angular - 如何以角度显示从api获取的数据
- python - bazel 构建 tensorflow/tools/graph_transforms:transform_graph 错误