Yii 创建小部件

在Yii中我们可以继承 yiibaseWidget类并且覆盖yiibaseWidget::init() 和/或 yiibaseWidget::run() 方法来实现创建一个小部件

一般情况下init方法用于处理小部件的属性,run方法用于处理小部件生成渲染结果的代码,run中的渲染结果可以直接输出或作为字符串返回或者将小部件内容放到视图文件中

一:使用widget方法

1:小部件创建

message == null) {
            $this->message = 'hello world!';
        }
    }
    public function run()
    {
        $messge = Html::encode($this->message);
        $html = <<
            {$messge}
            
HTML; $js =<<view->registerJs($js);// $css = <<view->registerCss($css); AppAsset::register($this->view);//注册资源包 return $html; } }

如上就创建了一个小部件

有时候小部件中可能需要渲染的内容较多,这时候我们就可以使用yiibaseWidget::render()方法渲染视图文件

public function run()
{
    return $this->render('index', [
        'message' => $this->message
    ]);
}

2:再视图中文件中引入小部件

 'nihao']) ?>

二:使用begin() 和 end() 方法

1:小部件创建

url == null) {
            $this->url = 'http://www.baidu.com';
        }
        ob_start();//开启输出缓存
    }
    public function run()
    {
        $html = Html::beginTag('a', ['href' => $this->url]);
        $content = ob_get_clean();//获取输出缓存内容
        $html .= $content;
        $html .= Html::endTag('a');
        return $html;
    }
}

2:小部件使用

 'http://www.wj0511.com']); ?>
    跳转

你可能感兴趣的:(yii,php,widget)