我收到一个错误:
类型错误:参数太少
如果参数没有完全通过,我认为 Laravel 会做一些魔术?
例如:
在控制器中我有:
public function create(CreateRequest $request)
{
return $this->todoService->createList($request);
}
在 todoService
类中:
use App\Plan
class todoService {
public function createList($request, Plan $plan)
{
//
}
}
如您所见,我没有通过 Plan
类对象。我必须绑定还是什么?
原文由 I‘ll-Be-Back 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您自己调用 createList() ,那么您需要自己传递这两个参数。你可以用 Plan 绑定一些东西,但如果你调用的东西不是 Laravel,那么你将负责传递该函数参数。
这种类型提示只有在 Laravel 调用该函数时才有效。所以需要通过 Laravel 调用这些函数。
如果您尝试自动注入类的构造函数,您可以简单地执行以下操作:
或者
或者
但这仅适用于构造函数。请注意,您还可以提供参数作为
make()
或resolve()
函数的下一个参数。事实上,不同的方法也可以这样调用。
你可以简单地做:
这里
$container
是Illuminate\Contracts\Container\Container
的对象。