gpt4 book ai didi

php - Laravel - 类型错误 : Too few arguments?

转载 作者:可可西里 更新时间:2023-11-01 13:17:15 25 4
gpt4 key购买 nike

我得到一个错误:

Type error: Too few arguments

我认为如果参数没有完全通过,Laravel 会施展魔法吗?

例如:

在我的 Controller 中:

public function create(CreateRequest $request)
{
return $this->todoService->createList($request);
}

todoService类中:

use App\Plan

class todoService {

public function createList($request, Plan $plan)
{
//
}
}

如您所见,我没有传递 Plan 类对象。我必须绑定(bind)什么的吗?

最佳答案

如果您自己调用 createList(),那么您需要自己传递两个参数。您可以使用 Plan 绑定(bind)一些东西,但如果您调用的不是 Laravel 的东西,那么您将负责传递该函数参数。

这种类型提示仅在 Laravel 调用该函数时有效。所以你需要通过 Laravel 来调用这些函数。

如果你想自动注入(inject)一个类的构造函数,你可以简单地这样做:

$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] );

这里 $containerIlluminate\Contracts\Container\Container 的对象。

关于php - Laravel - 类型错误 : Too few arguments?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43958616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com