我将一个原始值绑定到一个类。
$this->app->when('App\Http\Controllers\TestController')
->needs('$numPages')
->give(1000);
Run Code Online (Sandbox Code Playgroud)
但该值仅注入到类的构造函数中,而不注入到其他方法中。
class TestController extends Controller
{
public function __construct($numPages = 0)
{
// $numPages = 1000 WORKS
}
public function index($numPages = 0)
{
// $numPages = 0 DOESNT WORK
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我绑定一个常规类时,它的实例会被注入到所有方法中。这是有意的行为吗?
小智 0
我认为这可能是有意的,因为您的TestController::index参数应该由路线提供。因此,像这样的路线在被击中时/testcontroller/index/{numPages}可以提供$numPages值 4 。/testcontroller/index/4
如果可以通过 DI 注入该值,那么您最终可能会遇到错误,您期望该值来自路由,但正在注入不同的值。
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |