Php 使用参数调用控制器
我尝试用一个参数调用另一个控制器中的一个控制器。没有任何参数,我没有问题Php 使用参数调用控制器,php,laravel,laravel-5,Php,Laravel,Laravel 5,我尝试用一个参数调用另一个控制器中的一个控制器。没有任何参数,我没有问题 return app()->call('App\Http\Controllers\AppointmentController@create'); AppointmentController.php class AppointmentController extends Controller { public function create(CalendarInterface $calendar, Requ
return app()->call('App\Http\Controllers\AppointmentController@create');
AppointmentController.php
class AppointmentController extends Controller
{
public function create(CalendarInterface $calendar, Request $request) {
...
}
}
class AppointmentController extends Controller
{
public function create($response, CalendarInterface $calendar, Request $request) {
...
}
}
但是当我试图通过一个时,我有一个错误
return app()->call('App\Http\Controllers\AppointmentController@create', $response);
AppointmentController.php
class AppointmentController extends Controller
{
public function create(CalendarInterface $calendar, Request $request) {
...
}
}
class AppointmentController extends Controller
{
public function create($response, CalendarInterface $calendar, Request $request) {
...
}
}
类型错误:传递给Illumb\Container\Container::call()的参数2必须是给定对象的数组类型
或者如果我这样做了
return app()->call('App\Http\Controllers\AppointmentController@create', [$response]);
类型错误:传递给App\Http\Controllers\AppointmentController::create()的参数2必须实现接口App\CalendarInterface,该接口是[…]/App/Http/Controllers/AppointmentController.php:18中给出的照亮\Http\请求的实例
使用命名参数:
app()->call('App\Http\Controllers\AppointmentController@create', [
"response" => $response
]);
Laravel的automagic DI可能不支持这个用例,只传递部分论据,让他猜测还有什么需要解决 尝试传递所有参数:
app()->call(
'App\Http\Controllers\AppointmentController@create',
[$response, app(CalendarInterface::class), app(Request::class)]
);
作为旁注,称这样的“子控制器”可能是一种不好的做法。将业务逻辑移动到普通类怎么样?错误很明显。您需要执行
app()->call('app\Http\Controllers\AppointmentController@create“,[$response])我已经试过了<代码>类型错误:传递给App\Http\Controllers\AppointmentController::create()的参数2必须实现接口App\CalendarInterface,该接口是[…]/App/Http/Controllers/AppointmentController.php:18
中给出的lightize\Http\Request的实例。为什么首先要调用控制器?不建议这样做。你应该重构你的代码我正在构建一个机器人,当机器人收到消息时,它会调用一个控制器。机器人可以做很多事情,所以我每件事都有一个控制器!!