如何在laravel的方法中调用另一个控制器的方法,动态调用

1.现在有两个文件夹下的两个控制器,A,B 想要在A的一个方法中调用B控制器的方法

2.因为要在业务中,根据条件,来调用不同控制器的方法 例如:

$temp;
if(true){
    requre_once($temp."Controller.php");
    (new $temp())->index();
}

有什么基于laravel框架的方法或者特性来调用吗?让其优雅点. 貌似记得thinkphp3.2 框架有个R函数.

MMMHUHU
浏览 4557回答 4
4回答

慕虎7371278

为啥不写在模型里呢?R方法其实调用的和D的没什么区别,就传参方法不一样吧,我更好奇laravel有没有钩子函数,yii和tp都有

SMILET

需求实现: if (true){ app(B::class)->functionName(); } 但是,既然你提到 优雅 一词,那在一个 controller 里面调用另一个 controller 方法的这种想法就是很不优雅的,就算再优雅的实现也不会有优雅的代码 因为要在业务中,根据条件,来调用不同控制器的方法 可以贴一下具体的业务需求,大家才好帮你解决根本问题

青春有我

现在的框架都不会在一个controller,调用另一个controller,而且现在文件的使用都是走namespace,不会区使用require,要实现你的目的可以这样做,建一个service,然后在controller里调用你写的service 下的方法。文件路径的使用可以使用namespace,用注入的方式调用。

FFIVE

(new \namespace\B())->index();
打开App,查看更多内容
随时随地看视频慕课网APP