laravel 6 使用 `$controller->callAction` 将数据发送到另一个控制器

laravel 6 using `$controller->callAction` to send data to another controller

我有 2 个控制器,我使用 callAction 将数据发送到第二个控制器。这就是我的第一个控制器

$controller = App::make('\App\Http\Controllers\EmailController');
$email = $controller->callAction('sendEmail', array('firstitem'=>'qweqw','seconditem' =>'asd'));

使用上面的代码我希望在第二个控制器中获得一个数组。在我的第二个控制器中,我有

public function sendEmail($request){

        return ($request);
}

检查我是否会得到一个数组,但我只得到:qweqw 这只是数组的第一项。

在这种情况下发送或接收数组的正确方法是什么

下面一行应该可以。

app('\App\Http\Controller\EmailController')->sendEmail($params)

app('...')App::make('...') 的别名。您的代码的问题是 callAction 方法。

当您使用 app('...').

时,您已经获得了 App\Http\Controller\EmailController 的实例

控制器首先是一个 Class,因此,您可以使用它具有的任何 public 方法,例如 sendEmail 通过直接调用它并根据需要传递参数。 (->sendEmail($params)).