laravel 6 используя `$ controller-> callAction` для отправки данных на другой контроллер - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть 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, который является только первым элементом массива.

Как правильно отправить или получить массив в этом сценарии

1 Ответ

1 голос
/ 05 апреля 2020

Следующая строка должна работать.

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

app('...') - псевдоним для App::make('...'). Проблема с вашим кодом - метод callAction.

Вы уже получаете экземпляр App\Http\Controller\EmailController, когда используете app('...').

Контроллер, прежде всего, Класс , и поэтому вы можете использовать любой метод publi c, который у него есть, например sendEmail, вызывая его напрямую и передавая параметры по мере необходимости. (->sendEmail($params)).

...