Heim > Fragen und Antworten > Hauptteil
Was soll ich tun, wenn eine Methode in einem Controller in Laravel eine Methode in einem anderen Controller aufrufen möchte?
Zum Beispiel:
AaaController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AaaController extends Controller
{
public function aaa()
{
//...
}
}
BbbController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class BbbController extends Controller
{
public function bbb()
{
//这里要调用aaa(),应该怎么做?
}
}
Wie soll die bbb()-Methode in BbbController die aaa()-Methode in AaaController aufrufen?
PHP中文网2017-05-16 16:49:42
通常是不建议这么做的。
$ctrl = \App::make(\App\Http\Controllers\AaaController::class);
\App::call([$ctrl, "aaa"]);
为什么要这么复杂而不是直接new一个AaaController然后直接调用方法?因为要处理依赖注入。
迷茫2017-05-16 16:49:42
你可以建一个BaseController,其他两个congtroller共同继承这个controller,一些公用方法可以放置到BaseController里面,或者加个helper文件