I'l*_*ack 6 php laravel laravel-5 laravel-5.4
我收到一个错误:
类型错误:参数太少
如果争论没有完全通过,我认为Laravel会做些什么?
例如:
在控制器中我有:
public function create(CreateRequest $request)
{
    return $this->todoService->createList($request);
}
在todoService课堂上:
use App\Plan
class todoService {   
    public function createList($request, Plan $plan)
    {
      //
    }
}
如你所见,我没有传递Plan类对象.我必须绑定什么?
如果您要自己调用createList(),那么您将需要自己传递两个参数。您可以将某些东西与Plan绑定在一起,但是如果您要调用的不是Laravel,那么您将负责传递该函数参数。
仅当Laravel调用该函数时,此类型提示才有效。因此,您需要通过Laravel调用这些函数。
如果您试图自动注入类的构造函数,则只需执行以下操作:
$service = $this->app->make('App\Plan\todoservice');
要么
$service = App::make('App\Plan\todoservice');
要么
$service = resolve('App\Plan\todoservice');
但这仅适用于构造函数。请注意,您还可以提供参数作为make()或resolve()函数的下一个参数。
实际上,也可以以这种方式调用不同的方法。
您可以简单地执行以下操作:
    $service = App::make('App\Plan\todoservice');
    $container->call([$service, 'createList'], ['request' => $request] );
这$container是的对象Illuminate\Contracts\Container\Container。