Home > Backend Development > PHP Tutorial > 如何在控制器中调用另外一个控制器中的方法

如何在控制器中调用另外一个控制器中的方法

PHPz
Release: 2020-09-05 11:37:54
Original
3405 people have browsed it

在控制器中调用另外一个控制器中的方法的办法:首先在请求的参数中添加目标控制器需要的参数;然后实例化目标控制器;接着调用目标控制其方法;最后将返回的数据转成Array即可。

如何在控制器中调用另外一个控制器中的方法

如何在控制器中调用另外一个控制中的方法

Laravel控制器间调用方法

问题描述

laravel中外部通过route访问控制器方法。即每个路由指定路由,关联方法即可实现请求过程。

但是不同控制器之间通过路由访问会出现一些不可预知的问题,通知也会损失一部分性能。

现在的问题是,需要在一个控制器中调用另外一个控制中的方法。(因为意外产生的特殊需求,能解决一部分问题)

tips:如果能够直接通过路由直接访问方法是最好的方式,只是有些需要合并多个请求或者其他特殊请求的时候,可以通过控制器间方法调用解决。

问题解决

控制器间方法调用,实例化控制器对象,调用方法。(文档中没有这种方式,不过可以使用)

public function postServicesRecommend(Request $request) {
// 在请求的参数中添加目标控制器需要的参数
$request->offsetSet('key','value');
// 实例化目标控制器
$obj = new  ServiceItemsApiController($request);
// 调用目标控制其方法(路由方法,可接收外部请求)
$data = $obj->getRecommendList($request);
// 返回数据为Response对象,如果需要转成Array处理,可以这么做
$data=json_decode(json_encode($data),true)['original'];
}
Copy after login

更多相关技术文章,请访问PHP中文网

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template