xyf90314

xyf90314

这家伙有点懒,还没写个性签名!

  • 财富值5257
  • 威望值40
  • 总积分6607

个人信息

  • 2015-11-06 已签到
    连续签到28天,获得了20个金钱
  • 2015-11-05 已签到
    连续签到27天,获得了20个金钱
  • 回复了 的回答

    这两个什么联系呢?

    不知道 坐等回答

  • 2015-11-04 已签到
    连续签到26天,获得了20个金钱
  • 回复了 的回答

    首先你要理解init();在什么时候调用。
    是在object创建的时候调用的魔术方法__construct();里面调用到init();

    而静态方法的调用不会触发construct();
    所以ActiveForm::begin();先执行begin();方法,在begin();方法中调用$widget = Yii::createObject($config);的时候,才触发
    construct();调用到init();
    而$this->options中options的值是在__construct();中Yii::configure($this, $config);方法设置,所以你会发现你方法1中有init();有值而2中没值。

    $widget = Yii::createObject($config)这个源码好难理解

  • 回复了 的回答

    首先你要理解init();在什么时候调用。
    是在object创建的时候调用的魔术方法__construct();里面调用到init();

    而静态方法的调用不会触发construct();
    所以ActiveForm::begin();先执行begin();方法,在begin();方法中调用$widget = Yii::createObject($config);的时候,才触发
    construct();调用到init();
    而$this->options中options的值是在__construct();中Yii::configure($this, $config);方法设置,所以你会发现你方法1中有init();有值而2中没值。

    好帖子 顶

  • 2015-11-03 已签到
    连续签到25天,获得了20个金钱
  • 回复了 的回答

    如果你在options中没有指定id,那么框架就使用w0,w1,w2...这样的id.

    之前理解错了一直以为运行完begin后才会运行init的,原来是运行begin的时候会调用init的

  • 提出了问题
    $form = ActiveForm::begin() 不解
  • 2015-11-02 已签到
    连续签到24天,获得了20个金钱
副总裁 等级规则
6607/10000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

14

Ta的粉丝

21

Ta的访客

77