鍍金池/ 問答/PHP/ 如何在laravel的方法中調(diào)用另一個(gè)控制器的方法,動(dòng)態(tài)調(diào)用

如何在laravel的方法中調(diào)用另一個(gè)控制器的方法,動(dòng)態(tài)調(diào)用

1.現(xiàn)在有兩個(gè)文件夾下的兩個(gè)控制器,A,B 想要在A的一個(gè)方法中調(diào)用B控制器的方法

2.因?yàn)橐跇I(yè)務(wù)中,根據(jù)條件,來調(diào)用不同控制器的方法 例如:

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

有什么基于laravel框架的方法或者特性來調(diào)用嗎?讓其優(yōu)雅點(diǎn). 貌似記得thinkphp3.2 框架有個(gè)R函數(shù).

回答
編輯回答
吢涼

為啥不寫在模型里呢?R方法其實(shí)調(diào)用的和D的沒什么區(qū)別,就傳參方法不一樣吧,我更好奇laravel有沒有鉤子函數(shù),yii和tp都有

2017年7月12日 18:10
編輯回答
不討囍

現(xiàn)在的框架都不會(huì)在一個(gè)controller,調(diào)用另一個(gè)controller,而且現(xiàn)在文件的使用都是走namespace,不會(huì)區(qū)使用require,要實(shí)現(xiàn)你的目的可以這樣做,建一個(gè)service,然后在controller里調(diào)用你寫的service 下的方法。文件路徑的使用可以使用namespace,用注入的方式調(diào)用。

2018年5月14日 23:08
編輯回答
懶洋洋

需求實(shí)現(xiàn):

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

但是,既然你提到 優(yōu)雅 一詞,那在一個(gè) controller 里面調(diào)用另一個(gè) controller 方法的這種想法就是很不優(yōu)雅的,就算再優(yōu)雅的實(shí)現(xiàn)也不會(huì)有優(yōu)雅的代碼

因?yàn)橐跇I(yè)務(wù)中,根據(jù)條件,來調(diào)用不同控制器的方法

可以貼一下具體的業(yè)務(wù)需求,大家才好幫你解決根本問題

2017年2月13日 08:32
編輯回答
獨(dú)特范
(new \namespace\B())->index();
2017年9月16日 23:27