我正在使用laravel 5.
我需要调用控制器函数,但这应该在另一个控制器中完成。
我不知道该怎么做
public function examplefunction(){
//stuff
}
我有这个功能的路线,所以在
public function otherfunctioninothercontroller(){
// I need examplefunction here
}
我怎么能这样做?
答案 0 :(得分:5)
1)第一种方式
use App\Http\Controllers\OtherController;
class TestController extends Controller
{
public function index()
{
//Calling a method that is from the OtherController
$result = (new OtherController)->method();
}
}
2) Second way
app('App\Http\Controllers\OtherController')->method();
Both way you can get another controller function.
答案 1 :(得分:2)
如果它们不在同一个文件夹中,请将use namespace\to\ExampleClass;
放在文件的顶部,然后就可以实例化控制器了。
答案 2 :(得分:1)
我们说我有Controller1和Controller2。我想从放置在Controller2中的函数内部调用Controller1的函数。
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: <code> <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
*
* @author King Cong
*
*/
在另一个控制器上:
// Controller1.php
class Controller1 {
public static function f1()
{
}
}
要点:
答案 3 :(得分:0)
从另一个控制器内部调用一个控制器是一个坏主意。这样就没有控制器的意义了。您应该重定向到web.php以保存安全的整个体系结构,如下所示:
class MyController {
public function aSwitchCaseFunction(Request $requestPrm){
...
//getting path string from request here
...
switch($myCase){
case CASE_1:
return redirect()->route('/a/route/path');
....
}
}
}