laravel里面一个controller中的方法要调用另一个controller中的方法要怎么做?
比如:
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(),应该怎么做?
}
}
BbbController中的bbb()方法要调用AaaController中的aaa()方法要怎么做?
这说明你没有把aaa方法中的逻辑提取出来, orm可以放在Repository, 逻辑操作可以放在service中
通常是不建议这么做的。
为什么要这么复杂而不是直接new一个AaaController然后直接调用方法?因为要处理依赖注入。
在B控制器里创建一个A控制器的实例
这么用是可以用,但是我不知道这么用合不合规矩
(new AaaController ())->aaa();
你可以建一个BaseController,其他两个congtroller共同继承这个controller,一些公用方法可以放置到BaseController里面,或者加个helper文件
如果你非要这么做的话,可以把被调用的方法定义成静态方法。然后类名直接调用。不过很不建议这么做