为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
MMMHUHU 2019-03-18 05:38:19
1.现在有两个文件夹下的两个控制器,A,B 想要在A的一个方法中调用B控制器的方法 2.因为要在业务中,根据条件,来调用不同控制器的方法 例如: $temp; if(true){ requre_once($temp."Controller.php"); (new $temp())->index(); } 有什么基于laravel框架的方法或者特性来调用吗?让其优雅点. 貌似记得thinkphp3.2 框架有个R函数.
查看完整描述

4 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-18
?
SMILET

TA贡献1796条经验 获得超4个赞

需求实现:

if (true){
    app(B::class)->functionName();
}

但是,既然你提到 优雅 一词,那在一个 controller 里面调用另一个 controller 方法的这种想法就是很不优雅的,就算再优雅的实现也不会有优雅的代码

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

可以贴一下具体的业务需求,大家才好帮你解决根本问题

查看完整回答
反对 回复 2019-03-18
?
青春有我

TA贡献1784条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-03-18
?
FFIVE

TA贡献1797条经验 获得超6个赞

(new \namespace\B())->index();
查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 4556 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信