yii容器使用

想实现的功能

利用容器的递归反射进行获取对象,解决依赖问题

相关类

Show类

class Show
{
    public function show()
    {
        var_dump('show---show');
    }
}

MyFilter类

class MyFilter
{
    public function __construct(Show $show, $id)
    {
       var_dump('MyFilter---构造函数');
       var_dump($id);
    }

    public function show()
    {
        var_dump('show');
    }

}

控制器代码

获取MyFilter

$obj = Yii::$container->get(MyFilter::class, ['id' => 1]);
var_dump($obj->show());

但是会报错, id这个参数依赖没解决,该如何写?
laravel中app()这样是可以的

阅读 2k
1 个回答

你少传了一个show参数呀, 这个必须要按照构造参数的顺序来传, 应该是这样的

$obj = Yii::$container->get(MyFilter::class, ['show' => Yii::$container->get(Show::class), 'id' => 1]);
var_dump($obj->show());

你的MyFilter定义了两个构造参数, 你要按照顺序去传, 可以少后面的,但是不能少前面的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题